将两个 child() 调用压缩为一个

发布于 2024-11-07 18:17:55 字数 393 浏览 0 评论 0原文

如何将使用两次调用两个 children: 的方法转换

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

为仅调用一次 child 的方法?我试图选择特定表行 (tr) 内的每个输入文本框,该表行是 #id 的子级。我已经尝试过了

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

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

但这些都不起作用。我对这些选择器表达式有点陌生,如果它很明显,我很抱歉。

How do I turn this, which uses two calls two children:

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

into something that calls children only once? I am trying to select every input text box inside a particular table row (tr) that's a child of #id. I've tried

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

and

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

But neither of those work. I'm kinda new to these selector expressions, so sorry if it's obvious.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

昵称有卵用 2024-11-14 18:17:55

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

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

Although I like the $("#id tr td input") suggestions, in some cases (e.g. if you had the $("#id tr") object from some other source) you might instead be looking for .find(), which goes multiple levels deep (instead of .children() which only goes one):

$("#id tr").find("td input")
生死何惧 2024-11-14 18:17:55

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

或者也许 $('#id input')

Why not just $('#id tr input')?

Or maybe $('#id input')

谢绝鈎搭 2024-11-14 18:17:55

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

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

这将允许您从变量中获得 #idc tr 部分。基本上你所做的就是进行串联;因此,您首先阅读右侧的选择器,然后阅读左侧的选择器,例如:

$('> input', 'div')

相当于:

$('div > input')

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

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

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

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

I'm amazed no one suggested this one:

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

Which will allow you to have the #idc tr part from a variable. Basically what you're doing is doing a concatenation; so you read the right selector first, and then the left one, for instance:

$('> input', 'div')

Is the equivalent of:

$('div > input')

Now, lets do some golf here; the way you're passing the selector could be simplified to this two forms:

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

Both basically do the same, however as you may have noticed, the second one allows you to do jquery chaining; using .end() to go back to the previous selector #id.

I usually use the first statement whenever I need to do something simple that doesn't require me going back to the previous selector.

独留℉清风醉 2024-11-14 18:17:55

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

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

U can set a class for your inputs and select it

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文