压缩两个children()调用一个

时间:2011-05-16 05:00:12

标签: jquery select jquery-selectors children

如何转换它,使用两个调用两个children

$('#id tr').children('td').children('input')

进入只召唤一次儿童的东西?我正在尝试选择tr的子项中特定表行(#id)内的每个输入文本框。我试过了

$('#id tr').children('td input')

$('#id tr').children('td > input')

但这些都不奏效。我对这些选择器表达式不熟悉,很抱歉,如果它很明显。

4 个答案:

答案 0 :(得分:6)

虽然我喜欢$("#id tr td input")建议,但在某些情况下(例如,如果您拥有来自其他来源的$("#id tr")对象),您可能会寻找.find(),这会有多个级别深(而不只是.children()只有一个):

$("#id tr").find("td input")

答案 1 :(得分:3)

为什么不只是$('#id tr input')

或者$('#id input')

答案 2 :(得分:1)

我很惊讶没有人建议这个:

$('td input', '#idc tr')

这将允许您从变量中获得#idc tr部分。基本上你正在做的是连接;所以你首先阅读正确的选择器,然后是左边的选择器,例如:

$('> input', 'div')

相当于:

$('div > input')

现在,我们来这里打高尔夫吧;你传递选择器的方式可以简化为这两种形式:

$('input', '#idc td')
// vs
$('#id').find('td input')

两者基本上都是一样的,但是你可能已经注意到了,第二个允许你进行jquery链接;使用.end()返回上一个选择器#id

每当我需要做一些不需要回到上一个选择器的简单的事情时,我通常会使用第一个语句。

答案 3 :(得分:-2)

你可以为你的输入设置一个类并选择它

$('#id tr').children('td:input').hasclass('class name')