查找所有匹配的数据

时间:2019-01-08 21:11:12

标签: jquery

因此请考虑以下div

<div class="manage-wrapper d-flex py-5 eachJob hide-on-check" data-location="" data-city="city" data-province="province" data-position="something">
  <p>Content Here</p>
</div>

我在控制台中尝试了以下操作:

$('[data-location=""] [data-city="city"] [data-province="province"] [data-positon="something"]');

但是控制台什么也没回来(我希望有一个div)。我正在尝试与此div所有这些属性匹配的div或任何data-匹配。

为什么?

隐藏与这些数据属性不完全匹配的任何内容。

想法?

1 个答案:

答案 0 :(得分:2)

您需要删除属性选择器之间的空格:

console.log($('[data-location=""][data-city="city"][data-province="province"][data-position="something"]').html());
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="manage-wrapper  d-flex py-5 eachJob hide-on-check" 
  data-location="" 
  data-city="city" 
  data-province="province" 
  data-position="something">

    <p>Content Here</p>

</div>

选择器之间的空格表示 child 元素。在问题中使用类似的属性选择器时,这表明根元素必须具有第一个属性([data-location=""]),然后之后的每个后代也必须具有对应的属性。也就是说,孩子将是[data-city="city"],孙子将是[data-province="province"]

请注意,您也有data-positon,尽管这不会影响选择。