Я хочу найти <td role="foo" class="one two three four"> в пределах <div id="myid">
<td role="foo" class="one two three four">
<div id="myid">
Эти два селектора работают:
$('#myid td[role=foo]') $('#myid .two')
А вот этого нет, почему?
$('#myid .two td[role=foo]')
Поскольку пробел в строке селектора является потомком-селектором .
Вам нужно будет сделать:
$('#myid td.two[role=foo]')
Как вы это сделали, выискали <td role="foo"> элементов, которые являются потомками из .two.
<td role="foo">
.two
Вы хотите:
$("#myid td[role=foo].two")...
Этот селектор:
означает: найти элемент с идентификатором «myid».Из него найдите всех потомков с классом «два».Из этих элементов найдите всех потомков <td> элементов, имеющих атрибут role со значением "foo".
<td>
Потому что ваш селектор:
ищет td[role=foo] в элементе класса .two в элементе id #myid.
td[role=foo]
#myid
Вы используете селекторы потомков, а не ищете td[role=foo].two, который, я думаю, то, что вы хотите.
td[role=foo].two