因此请考虑以下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-
匹配。
为什么?
隐藏与这些数据属性不完全匹配的任何内容。
想法?
答案 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
,尽管这不会影响选择。