jQuery - 查找并删除div的多个属性

时间:2017-07-19 17:54:29

标签: javascript jquery arrays attributes

我试图找到所有具有“类似注释”类的div,其中也有“data-id”属性等于118603,1234,1234,118601,118597并且如果某些div包含这些数据值中的一个,则删除那个数据属性。

到目前为止,我创建了这个,但它目前无法正常工作。

remove_comments = 118603,1234,1234,118601,118597;
$('.comment-like').find('[data-id="' + remove_comments + '"]').removeAttr('data-id'); 

3 个答案:

答案 0 :(得分:1)

您可以动态创建查询字符串以捕获您要查找的所有div。查询字符串如下所示:

.comment-like[data-id="118603"], .comment-like[data-id="1234"], etc...



var ids = [118603, 1234, 1234, 118601, 118597];
var queryString = ids
  .map(function(id) {
    return '.comment-like[data-id="' + id + '"]';
  })
  .join(', ');

$(queryString).each(function(i, el) {
  $(el).removeAttr('data-id');
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="comment-like" data-id="118603"></div>
<div class="comment-like" data-id="1234"></div>
<div class="comment-like" data-id="0"></div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

简单的解决方案就是循环使用你的ID

remove_comments = 118603,1234,1234,118601,118597;
rc = remove_comments.split(",");
for (var i = 0; i < rc.length; i++) {
  $('.comment-like').find('[data-id="' + rc[i] + '"]').removeAttr('data-id'); 
}

答案 2 :(得分:0)

如果您在Chrome中打开开发者控制台并将其打印在:

remove_comments = 118603,1234,1234,118601,118597;

remove_comments

你可以看到实际发生的事情。

一种应该工作的方法是将它放在一个数组中,然后循环它:

var remove_comments = [118603,1234,1234,118601,118597];
for (var i = 0; i < remove_comments.length; i++) {
    $('.comment-like').find('[data-id="' + remove_comments[i] + '"]').removeAttr('data-id'); 
}