Jquery 不是数据选择器

Jquery not data selector

这个有效

  $('[data-department='+dept+']').closest('.person').hide();

所以希望这 show/hide 未选择的元素。

$('[data-department !='+dept+']').closest('.person').hide();

它没有按预期工作。即使是硬编码。

$('[data-department!=8]').closest('.person').hide();

$('[data-department !='+dept+']') 将 select 元素甚至那些没有任何 data-department 属性的元素作为 A。沃尔夫说。所以你可以像下面这样使用filter()方法。

$('[data-department]').filter(function() {
    return $(this).data('department') != 8;
}).closest('.person').hide();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="person">
    <div data-department="8">
      8888888888888888
    </div>
</div>
<div class="person">
    <div data-department="9">
      9999999999999999
    </div>
</div>
<div class="person">
    <div data-department="10">
      1010101010101010
    </div>
</div>