我的网站上有多次列表(不同样式)。
每个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');
});
});
});
答案 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');
参考文献: