У меня есть следующая разметка:
<table class="dogs"> <tr> <td> <input class="name"> </td> etc.
Я пытаюсь выбрать элемент input, используя следующую инструкцию:
input
$('table.dogs > input.name')
Однако я не получил результатов. Что я делаю не так?
Я полагаю, что с этим синтаксисом вы будете искать прямого потомка table, тогда как вы должны искать прямого потомка td.Попробуйте:
table
td
$('table.dogs td > input.name')
В этом случае вам действительно не нужно >.
>
Вместо этого используйте этот селектор:
$('table.dogs input.name')
Таким образом, вы выбираете все input с именем класса name, которые являются потомками (а не непосредственными потомками) table симя класса dogs.
name
dogs
jQuery('parent > child') выбирает все прямые дочерние элементы, указанные «потомком», элементов, указанных «родителем».
jQuery('parent > child')
input.name не является прямым потомком table.dogs
input.name
table.dogs
Вы можете использовать:
Вы должны использовать другие селекторы, подобные этому.
$('table.dogs .name');
Child Selector («родитель> ребенок») Выбирает все прямые дочерние элементы, указанные "child" для элементов, указанных "parent".
Правильный селектор в вашем случае будет table.docs > tbody > tr > td > input.name, так как все строки таблиц неявно переносятся в TBODY, если TBODY / THEAD / TFOOT не указаны вручную.
table.docs > tbody > tr > td > input.name
Просто используйте селектор table.docs input.name, чтобы разрешить любые элементы между table.docs и input.name.
table.docs input.name
table.docs
Избавиться от «>» $ («table.dogs input.name»)