Jquery addclass到同一个类的多个div?

时间:2014-02-24 22:23:46

标签: javascript jquery click addclass

我的网站上有多次列表(不同样式)。

每个list-element都有一个唯一的data-id / class(两个列表都相同)。($ cid是唯一的id)。

我想将“selected”类添加到具有相同data-id / class的所有元素。

<div id="page">
    [...]
    <div id="printlist">
       <div data-id="pc_{$cid}" class="pc_{$cid} productc">
           <h5>TITLE</h5>
       </div>
    </div>
    [...]
    <div id="footer">
       <div data-id="pc_{$cid}" class="pc_{$cid} productc">
           <h5>SAME TITLE, OTHER POSITION</h5>
       </div>
    </div>
</div>

到目前为止我已尝试过:

jQuery(document).ready(function() {
    $('.productc').click(function(){
        id = $(this).attr('data-id');
        $('.'+id).addClass('selceted');
    });
});

这两点都不起作用:

jQuery(document).ready(function() {
    $('.productc').click(function(){
        id = $(this).attr('data-id');
        $('.'+id).each(function(i){
            $('.'+id).addClass('selceted');
        });
    });
});

3 个答案:

答案 0 :(得分:2)

您错误选择了,并影响具有相同类的所有元素 尝试使用

$('.productc .'+$(this).attr('data-id')).addClass('selected');
点击功能

内的

答案 1 :(得分:2)

这个怎么样:

jQuery(document).ready(function() {
    $('.productc').click(function(){
        var id = $(this).attr('data-id');
        $('.'+id).each(function(i){
            $(this).addClass('selected'); // $(this), not the id element
        });
    });
});

答案 2 :(得分:0)

我建议,尽管未经测试:

$('li[data-id').filter(function(){
    return this.id == $(this).data('id');
}).addClass('selected');

参考文献: