JQuery каждый матч не работает - PullRequest
0 голосов
/ 25 октября 2011

В любом случае, я хочу судить, если идентификатор div совпадает с чем-то, а затем добавить к нему класс. Мой код здесь, но каждый матч не работает. Пожалуйста, помогите, спасибо.

<script>
$(document).ready(function(){
    var num = '3';
    $('.ddd').each(function(){
        if($(this).attr('id').match(/^'id'+num$/)){
            $(this).addClass('eee');
        }
    });
});
</script>
<style>
.ddd{float:left;display:block;background:#9FF;width:50px;height:50px;margin:10px;}
.eee{background:#F36!important;}
</style>
<div class="ddd" id="id1"></div>
<div class="ddd" id="id2"></div>
<div class="ddd" id="id3"></div>
<div class="ddd" id="id4"></div>
<div class="ddd" id="id5"></div>
<div class="ddd" id="id6"></div>
<div class="ddd" id="id7"></div>

Ответы [ 6 ]

3 голосов
/ 25 октября 2011

Обновление:

var num = '3';
$('#id' + num).addClass('eee');

Вы можете просто использовать запускается с селектором ^= и применять класс следующим образом:

$('div.ddd[id^="id"]').addClass('eee');

Это будетприменять класс eee ко всем элементам, которые имеют атрибут id, начинающийся с текста id:)

1 голос
/ 25 октября 2011

Вероятно, вы должны послушать всех этих парней, которые говорят, что вам следует использовать селектор фактического идентификатора (#id) или селектор атрибута ([attribute=value]), но чтобы ответить на ваш вопрос, я укажу, что высделал неправильно.
При создании «динамических» регулярных выражений, которые должны инкапсулировать в них переменные, вы должны использовать конструктор new RegExp вместо встроенного синтаксиса /rule/.Более того, если вы просто хотите проверить, что-то связано с регулярным выражением, вам, вероятно, следует использовать метод регулярного выражения test.:

var num = '3';
var regex = new RegExp('^id' + num + '$');
$('.ddd').each(function(){
    if(regex.test($(this).attr('id'))){
        $(this).addClass('eee');
    }
});
1 голос
/ 25 октября 2011

будь проще:)

$(document).ready(function(){
    var num = '3';
    $('.ddd#id' + num).addClass('eee');
});
1 голос
/ 25 октября 2011
$(document).ready(function(){
    var num = '3';
    $('.ddd[id^="id'+num+'"]').addClass('eee');
});
1 голос
/ 25 октября 2011
<script>
$(document).ready(function(){
    var num = '3';
    $(".ddd[id='id'"+num+"']").addClass('eee');
    });
1 голос
/ 25 октября 2011
$(document).ready(function(){
    var num = '3';
    $('.ddd').each(function(){
        if($(this).attr('id').match(/^id[0-9]+$/)){
            $(this).addClass('eee');
        }
    });
});
...