Javascript 使用jQuery选择具有特定数据的元素
是否可以使用jQuery数据方法设置一些数据,然后在以后进行查询?类似于。。。查找数据为foo==true的所有元素?您可以使用它来选择所需的元素,如下所示: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"; }); 在这种情况下,由于要检查布尔值,因
$("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并不总是将这些数据保存在元素:)