2017-07-19 8 views
2

"data-id"属性が118603,1234,1234,118601,118597に等しいクラス "comment-like"を持つすべてのdivを検索しようとしていて、divこれらのデータ値の1つが含まれている場合は、そのデータ属性を削除します。jQuery - divの複数の属性を見つけて削除する

これまでのところ私はこれを作成しましたが、現在は動作していません。

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

答えて

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>

+0

これは、説明したとおりに動作しました。 – Chymmi

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'); 
} 
+0

私はあなたが、配列や文字列せずに変数に複数の値を定義することができます知りませんでした。コンソールのremove_commentsは118603だけを返します。 –

0

あなたはChromeでデベロッパーコンソールを開いている場合、こののtyp:

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'); 
} 
関連する問題