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

时间:2010-09-04 13:39:34

标签: jquery css-selectors

如果我有这个HTML:

<a id="test" referenceId="test23" href=''>Test</a>

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

我知道我可以做到这一点

$('#test'). . ..

但我想了解我是否可以做类似的事情,但使用referenceId属性来获取选择器。

3 个答案:

答案 0 :(得分:6)

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

$("a[referenceId='someValue']")...

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

$("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.

请注意,建议将属性值括在引号中。您可以从jQuery API docs了解有关选择器的更多信息。

答案 1 :(得分:4)

$('[referenceId="test23"]')

答案 2 :(得分:3)

$('[attribute=someValue]'). . . .