2010-12-06 89 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 s。

0

您的情况下,适当的选择器将是table.docs > tbody > tr > td > input.name,因为所有表行都被隐式包装在TBODY中,除非手动指定TBODY/THEAD/TFOOT。

只需使用table.docs input.name选择器即可允许table.docsinput.name之间的任何元素。

0

你应该使用像这样的其他选择器。

$('table.dogs .name'); 

子选择器(“父>子”) 选择由“父母”指定元素的“小孩”中规定的所有直接子元素。