如何根据属性从jQuery中获取选择器

leo*_*ora 2 jquery css-selectors

如果我有这个HTML:

<a id="test" referenceId="test23" href=''>Test</a>
Run Code Online (Sandbox Code Playgroud)

我想根据referenceId属性获取选择器(不是id)

我知道我能做到这一点

$('#test'). . ..
Run Code Online (Sandbox Code Playgroud)

但我想知道我是否可以做类似的事情,但使用该referenceId属性来获取选择器.

Yan*_*hon 6

从属性值搜索不应该直接在根文档上进行,特别是不要使用非常通用的选择器,因为它非常慢,并且应该限于特定的父级,特定的标记名称或具有共享CSS类的元素.例如,在您的情况下,如果referenceId是仅为锚元素指定的属性,则查询:

$("a[referenceId='someValue']")...
Run Code Online (Sandbox Code Playgroud)

如果您在不同的标记名称上具有此属性,则可以在同一查询中缩小搜索指定公共父级或使用多个选择器等.例如 :

$("div#parent [referenceId='someValue']")... // use div#parent as base element
$("a[referenceId='someValue'], span[referenceId='someValue']")... // search A and SPAN tags only
$(".ref[referenceId='someValue']")... // search any element with "ref" CSS class
// etc.
Run Code Online (Sandbox Code Playgroud)

请注意,建议将属性值括在引号中.您可以从jQuery API文档中阅读有关选择器的更多信息.