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

tok*_*tok 12 javascript jquery select

是否可以使用jQuery数据方法设置一些数据,然后再查询它?像...找到数据foo == true的所有元素?

Nic*_*ver 26

您可以使用.filter()选择所需的元素,如下所示:

$("someSelector").filter(function() { return $.data(this, "foo"); });
Run Code Online (Sandbox Code Playgroud)

在这种情况下,因为你正在检查一个布尔值,它非常简单,为了检查一个值,只需添加比较,如下所示:

$("someSelector").filter(function() { return $.data(this, "foo") == "value"; });
Run Code Online (Sandbox Code Playgroud)

  • @Matt - 没有浪费jQuery对象:) (7认同)
  • @steelaz - 上述方法只有在元素存储数据时才有效...数据属性的处理方式不同,必须通过`.data('name')`访问(至少第一次),然后查看属性,而`$ .data(obj,'name')`只能直接查看jQuery中的数据对象存储. (3认同)

Anu*_*rag 5

如果data没有循环遍历DOM中的每个元素,只检查API,并检查它是否包含具有指定值的数据项.

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

$("selector").attr("data-key", "theKey");
Run Code Online (Sandbox Code Playgroud)

稍后选择"data-key"具有以值trueusing 命名的属性的所有对象

$('[data-key="true"]')
Run Code Online (Sandbox Code Playgroud)