javascript - jQuery 按数据值排除元素

标签 javascript jquery html

我有这个 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/

相关文章:

javascript - 有人可以使用 .bind() 函数向我解释这段代码吗?

javascript - 为什么我的 in for each 循环只添加最后一个元素?

html - CSS hover block li 元素消失边框圆形

javascript - 为 Bootstrap 模式编写回调函数

javascript - 文本不在第二行拆分

javascript - 公理。即使 api 返回 404 错误,如何在 try catch finally 中获得错误响应

javascript - 通过链接的 AJAX 请求

jquery - 如何在 Bootstrap 模式中禁用水平拖动

javascript - 如何将页面中的文本框值传递到另一个页面中的文本框?

javascript - 如何进一步扩展切换侧边栏