Javascript 检查数据属性(数组)是否包含值

Javascript 检查数据属性(数组)是否包含值,javascript,html,jquery,Javascript,Html,Jquery,是否可以检查数据属性(数组)是否包含特定值 元素如下所示: <span id="el" data-id="[1, 2, 10, 3]"></span> <span id="el" data-id="[4, 3]"></span> <span id="el" data-id="[6]"></span> 示例

是否可以检查数据属性(数组)是否包含特定值

元素如下所示:

<span id="el" data-id="[1, 2, 10, 3]"></span>
<span id="el" data-id="[4, 3]"></span>
<span id="el" data-id="[6]"></span>

示例中的一个问题是多个元素具有相同的
id
不幸的是,这在HTML中是不可能的,我建议您首先创建

至于你的问题,这是可能的,但你必须这样做:

$(函数(){
$(“.element”)。每个(函数(){
const arr=$(this.data('array');
let text='不包括2';
如果(包括第(2)款){
text='不包括2';
}
$(此).text(文本);
});
});

当您试图使用
3
作为选择器的一部分来检索元素时,您可以使用
filter()
,如下所示:

<span id="el" data-id="[1, 2, 10, 3]"></span>
<span id="el" data-id="[4, 3]"></span>
<span id="el" data-id="[6]"></span>
let id=3;
$('.el').filter((i,el)=>$(el).data('id').includes(id)).addClass('foo')
span{
显示:块;
保证金:3倍;
}
foo{
背景色:#C00;
颜色:#EEE;
}

1, 2, 10, 3
4, 3

6
这本质上是JSON,因此将其解析为JSON并使用
。includes
。第二个代码段看起来更像是要选择在其数据属性数组中包含数字的HTML元素,而不是检查给定的数据属性数组是否包含值。这是哪一个?这回答了你的问题吗?实际上,你的代码确实有效!它将找到第一个和第二个跨度。如果你说id不起作用,你预计会发生什么?(旁注:ID应该总是唯一的!)这仅仅是单个
span
可能包含的3个示例,还是文档中的3个
span
元素?
id
属性在任何给定元素上都必须是唯一的。嗨@Mad!您可以(与#abcdef元素)共享完整的HTML结构吗?还有,你想用它做什么?您是要选择与正在查找的数据id匹配的元素,还是需要查找父元素?比如你的目标是什么?