2010-12-06 2 views
0

У меня есть следующий код:Проблема с выбором JQuery

<table class="dogs"> 
    <tr> 
     <td> <input class="name"> </td> 
     etc. 

Я пытаюсь выбрать input элемент, используя следующее заявление:

$('table.dogs > input.name') 

Однако, я не получаю никаких результатов. Что я делаю не так?

ответ

3

Я считаю, что с этим синтаксисом вы бы искали прямого ребенка из table, когда вы должны искать прямого ребенка из td. Попробуйте:

$('table.dogs td > input.name') 

Вы действительно не нужно > в этом случае, хотя.

+1

При такой скорости `$ ('table.dogs input.name')` будет работать так же хорошо. – 2010-12-06 14:34:46

0

Избавиться от «>» $ («table.dogs input.name»)

1

jQuery('parent > child') выбирает все прямые элементы, указанные дочерние «ребенок» элементов, установленных «родителя».

input.name не является прямым потомком table.dogs

вы можете использовать:

  • $('table.dogs td > input.name')
  • $('table.dogs input.name')
2

Используйте этот селектор вместо:

$('table.dogs input.name') 

Таким образом, вы выбираете все input s с именем класса name, которые являются потомками (а не непосредственными детьми) table s с именем класса dogs.

0

Правильный селектор в вашем случае будет table.docs > tbody > tr > td > input.name, так как все строки таблиц неявно завернуты в TBODY, если TBODY/THEAD/TFOOT не указаны вручную.

Простой использование селектора table.docs input.name, позволяющего использовать любые элементы между table.docs и input.name.

0

Вы должны использовать другие селекторы, подобные этому.

$('table.dogs .name'); 

Child Selector («родитель> ребенок») Выбирает все прямые элементы, указанные дочерние "ребенок" элементов, установленных "родителя".

Смежные вопросы