我有这个 HTML 代码:
<ul class="chosen-results">
<li data-value="-">-</li>
<li data-value="145">145</li>
<li data-value="170">170</li>
<li data-value="300">300</li>
</ul>
<ul class="chosen-results">
<li data-value="-">-</li>
<li data-value="0">No</li>
<li data-value="1">Yes</li>
</ul>
我需要隐藏数据值与值数组匹配的所有元素。 我已经尝试过了:
var array = ['145', '0', '300'];
var $li = $('.chosen-results li').filter(function(i) {
return $(this).data('value') != array[i];
});
但是$li包含所有<li>元素!
最佳答案
尝试在此上下文中使用Array.prototype.indexOf()
,
var array = ['145', '0', '300'];
var $li = $('.chosen-results li').filter(function(i) {
console.log( typeof $(this).data('value'));
return array.indexOf($(this).data('value') + "") > -1;
}).hide();
DEMO
关于javascript - jQuery 按数据值排除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36328632/