我有以下标记:问题与jQuery选择
<table class="dogs">
<tr>
<td> <input class="name"> </td>
etc.
我尝试使用下面的语句来选择input
元素:
$('table.dogs > input.name')
但是,我没有得到任何结果。我究竟做错了什么?
我有以下标记:问题与jQuery选择
<table class="dogs">
<tr>
<td> <input class="name"> </td>
etc.
我尝试使用下面的语句来选择input
元素:
$('table.dogs > input.name')
但是,我没有得到任何结果。我究竟做错了什么?
我相信你会找到一个直接的孩子table
这种语法,当你应该找一个td
的直接孩子。尝试:
$('table.dogs td > input.name')
你真的不需要在这种情况下的>
。
摆脱“>” $(“table.dogs input.name”)
jQuery('parent > child')
选择由“父母”指定元素的“小孩”中规定的所有直接子元素。
的input.name
不是table.dogs
直接孩子,你可以使用:
$('table.dogs td > input.name')
$('table.dogs input.name')
使用此选择,而不是:
$('table.dogs input.name')
这样你选择所有input
s与name
类,它们是table
s的后代(而不是直接子女)与类名称dogs
s。
您的情况下,适当的选择器将是table.docs > tbody > tr > td > input.name
,因为所有表行都被隐式包装在TBODY中,除非手动指定TBODY/THEAD/TFOOT。
只需使用table.docs input.name
选择器即可允许table.docs
和input.name
之间的任何元素。
你应该使用像这样的其他选择器。
$('table.dogs .name');
子选择器(“父>子”) 选择由“父母”指定元素的“小孩”中规定的所有直接子元素。
以那个速度,'$('table.dogs input.name')`也可以工作。 – 2010-12-06 14:34:46