注意:这不是按数据属性查询的基本问题
我遇到的问题是我有一些像这样的元素:
<div data-step="1, 4">
我已经想出了如何逐步完成每个[data-step]
并提取1, 4
并为它们创建事件等。
假设我正在尝试查询并抓住这个确切的数据步骤,但我得到的只是:4
$('[data-step="4"]')
// this won't work of course
$('[data-step="1, 4"]')
// obviously this will work, but at this point I'm only given the index
// which will only be ONE of these numbers
基本上给出(例如,4)我如何轻松查询选择器出去并抓住[data-step="1, 4"]
?
所有我能够想出的是一个循环,它遍历每个数据步骤,去除所有内容并查看是否匹配。有可能更容易吗?
答案 0 :(得分:4)
~=
将找到具有属性的元素,该属性具有包含给定单词的值,由空格分隔。也适用于您的情况。
$('[data-step~="4"]')
*=
将找到具有属性的元素,该属性具有包含给定子字符串的值。
$('[data-step*="4"]')
答案 1 :(得分:2)
您也可以使用filter
解决方案:
var search = 4;
$("[data-step]").filter(function() {
return $.inArray("" + search, $(this).data("step").split(/,\s*/)) !== -1;
});
答案 2 :(得分:0)
你需要使用* before =它将返回包含子字符串'value'的所有数据步骤 $( '[数据步* = “值”]')