3

注意:这不是关于按数据属性查询的基本问题

我遇到的问题是我有一些像这样的元素:

<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"]

我能想出的只是一个循环,它遍历每个数据步骤,删除所有内容并查看是否有匹配项。可能有更简单的方法吗?

4

3 回答 3

4

~=将找到具有属性的元素,该属性的值包含给定的单词,由空格分隔。也适用于您的情况。

$('[data-step~="4"]')

*=将找到具有包含给定子字符串的值的属性的元素。

$('[data-step*="4"]')
于 2013-01-03T22:41:32.567 回答
2

您也可以使用filter解决方案:

var search = 4;
$("[data-step]").filter(function() {
    return $.inArray("" + search, $(this).data("step").split(/,\s*/)) !== -1;
});
于 2013-01-03T22:41:47.583 回答
0

您需要使用 * before = 它将返回所有包含子字符串 'value' $('[data-step*="value"]') 的数据步骤

于 2013-01-03T22:45:50.887 回答