Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery选择具有特定数据的元素_Javascript_Jquery_Select - Fatal编程技术网

Javascript 使用jQuery选择具有特定数据的元素

Javascript 使用jQuery选择具有特定数据的元素,javascript,jquery,select,Javascript,Jquery,Select,是否可以使用jQuery数据方法设置一些数据,然后在以后进行查询?类似于。。。查找数据为foo==true的所有元素?您可以使用它来选择所需的元素,如下所示: $("someSelector").filter(function() { return $.data(this, "foo"); }); $("someSelector").filter(function() { return $.data(this, "foo") == "value"; }); 在这种情况下,由于要检查布尔值,因

是否可以使用jQuery数据方法设置一些数据,然后在以后进行查询?类似于。。。查找数据为foo==true的所有元素?

您可以使用它来选择所需的元素,如下所示:

$("someSelector").filter(function() { return $.data(this, "foo"); });
$("someSelector").filter(function() { return $.data(this, "foo") == "value"; });
在这种情况下,由于要检查布尔值,因此非常简单,要检查值,只需添加比较,如下所示:

$("someSelector").filter(function() { return $.data(this, "foo"); });
$("someSelector").filter(function() { return $.data(this, "foo") == "value"; });

如果不循环DOM中的每个元素并检查它是否包含具有指定值的数据项,则仅使用
数据
API是不可能的

如果数据很简单,也许您可以使用HTML5数据属性,这些属性也可以通过选择器进行搜索

$("selector").attr("data-key", "theKey");
稍后,使用选择具有名为
“数据键”
且值为
true
的属性的所有对象

$('[data-key="true"]')

使用
$.data(this'foo')
$(this.data('foo')
)有什么好处?@Matt-没有浪费的jQuery对象:)这对我来说不起作用。我不明白你为什么要计算
$.data(这个“foo”)=“value”
对我来说,它的工作原理是用
$.data(this).foo.id==“idValue”替换它。谢谢你的提示!真的帮了我的忙@Xeroxoid-在您的案例中,您正在检查
foo
上的
id
属性,而不仅仅是
foo
。要进行比较,在我的示例中,您需要
$.data(此“foo”).id
而不仅仅是
$.data(此“foo”)
才能进行等效比较。@steelaz-上述方法仅在元素存储了数据时有效……数据属性的处理方式不同,并且必须由
.data('name')访问(至少第一次)
它去查看属性,而
$.data(obj,'name')
只直接查看jQuery中的数据对象存储。非常感谢。我忘了jquery并不总是将这些数据保存在元素:)