将类选择器和属性选择器与jQuery结合


147

是否可以将类选择器属性选择器与jQuery结合使用?

例如,给定以下HTML:

<TABLE>
  <TR class="myclass" reference="12345"><TD>Row 1</TD></TR>
  <TR class="otherclass" reference="12345"><TD>Row 2</TD></TR>
  <TR class="myclass" reference="12345"><TD>Row 3</TD></TR>
  <TR class="myclass" reference="54321"><TD>Row 4</TD></TR>
</TABLE>

我只能用来选择第1行和第3行的选择器是什么?

我努力了:

$(".myclass [reference=12345]") // returns nothing

$(".myclass, [reference=12345]") // returns all 4 rows (yes, I know the comma means 'or')

我敢肯定答案很简单,我已经尝试搜索jQuery论坛和文档,但似乎无法弄清楚。有人可以帮忙吗?

Answers:


290

合并它们。从字面上它们结合起来;它们连接在一起,没有任何标点符号。

$('.myclass[reference="12345"]')

您的第一个选择器将查找具有属性值的元素,该元素包含在类的元素中。
该空间被解释为后代选择器

如您所说,您的第二个选择器将查找具有属性值或/或类或二者兼有的元素。
逗号被解释为多重选择器运算符-意味着什么(CSS选择器没有“ operators”的概念;逗号可能更准确地称为定界符)。


1
我也可以结合身份证吗?我的意思是这样:$('。myclass [myid =“ 6”]')
Rahul Pawar


7

此代码也适用:

$("input[reference=12345].myclass").css('border', '#000 solid 1px');

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.