Jquery如何在数据属性数组中选择包含特定值的元素



假设我有以下元素

<div data-tags="[8,18,32,52,53,56]"></div>
<div data-tags="[8,2,3]"></div>
<div data-tags="[4,6,10]"></div>

现在我想选择具有"0"的元素;8〃;在他们的数据标签属性中,我该如何使用jquery来做到这一点?我正在尝试$('[data-tags~=8]'(和$('[data-tags ~="8''(,但它们都不起作用。感谢您的帮助。

编辑:我不认为$('[data tags*=8]'(是一个解决方案,因为它还包括值为18、86 804等的项目,对吧?

您可以使用以下内容:

var found = $('div[data-tags]').filter(function() {
return JSON.parse($(this).attr("data-tags")).indexOf(8) > -1
})

演示

var found = $('div[data-tags]').filter(function() {
return JSON.parse($(this).attr("data-tags")).indexOf(8) > -1
})
var found2 = $('div[data-tags]').filter(function() {
return JSON.parse($(this).attr("data-tags")).indexOf(18) > -1
})
console.log("Found",found.length, "by number 8");
console.log("Found",found2.length, "by number 18");
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div data-tags="[8,18,32,52,53,56]"></div>
<div data-tags="[8,2,3]"></div>
<div data-tags="[4,6,10]"></div>

最新更新