Поєднання вибору класу та селектора атрибутів з 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, але, здається, я не можу це зрозуміти. Хтось може допомогти?

Відповіді:


290

Поєднайте їх. Буквально поєднувати їх; приєднайте їх разом без розділових знаків.

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

Ваш перший селектор шукає елементи зі значенням атрибута, що містяться в елементах з класом.
Простір інтерпретується як селектор нащадків .

Ваш другий селектор, як ви сказали, шукає елементи зі значенням атрибута, або класом, або обом.
Кома інтерпретується як оператор множинного селектора - що б це не означало (у селекторах CSS поняття "оператори" немає; кома, мабуть, більш точно відома як роздільник).


1
Чи можу я також поєднувати ідентифікатор? я маю на увазі ось так: $ ('. myclass [myid = "6"]')
Рахул Павар



Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.