2010-12-20 78 views

回答

26

您可以使用.filter()选择您想要的元素,像这样的:因为你正在检查一个布尔这是很简单,对一个值进行核对

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

在这种情况下,只需添加的比较,像这样的:

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

有什么用'$。数据(这一点,“富”)的优势名为"data-key"与价值true属性的所有对象(这)。数据( '富')'? – 2010-12-20 17:16:35

+7

@Matt - 没有浪费的jQuery对象:) – 2010-12-20 17:17:54

+0

这没有工作形式。我不明白你为什么评估'$ .data(this,“foo”)==“value”;'对于我来说,它是通过用'.data(this)替换它.foo.id ==“idValue”; '。感谢您的提示,但!真的帮助我了! – Xeroxoid 2011-11-04 14:39:02

5

不可能只是不通过DOM中的每个元素循环和检查,看看它是否包含与指定的值数据项data API。

如果数据很简单,也许您可​​以使用也可通过选择器搜索的HTML5数据属性。

$("selector").attr("data-key", "theKey"); 

后来选择`过`$有使用

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

非常感谢。我忘记了jquery并不总是将这些数据保存在元素中:) – mrzmyr 2011-09-06 16:59:47

相关问题