我可以使用jquery children()来选择子元素的子元素吗?

时间:2013-06-15 15:51:34

标签: javascript jquery jquery-selectors children

我正在尝试编写一个必须涵盖ultableselect的选择器,并选择litr和{{1在一个选择器中。

因为我不能排除在表格单元格中定义的列表,所以我尝试这样:

options

但看起来我无法通过选择:

来访问表格行
// el can either be a list, table, select
var items = el.children("li, option, tbody tr, tbody th");

问题:
有没有办法使用var items = "table".children("tbody tr"); 方法并选择“孩子的孩子”?如果没有,是否有更好的方法使用jQuery?

谢谢!

修改
我正在寻找一个简短的方法:

children()

很高兴在单行中执行此操作,但我需要在我的if (el.get(0).tagName === "TABLE") { items = el.find("tbody tr"); } else if ( el.get(0).tagName === "UL") { items = el.children(); } else if ( el.get(0).tagName === "SELECT") { items = el.children(); } 电话中访问tbody tr

答案
这是我的最终选择:

children()
到目前为止,

给了我正确的元素,所以当items = el.find("> li, > option, tbody tr, tbody th, ui-controlgroup-controls ui-btn");

el

谢谢@adeneo!

3 个答案:

答案 0 :(得分:1)

所以你只想要el的第一个后代来自el,我现在假设的TRs,LIs或OPTIONs。我不确定浏览器变体在桌面上的位置是什么,所以我可能会安全地使用它:

$('> li, > option, > tr, > tbody > tr', el);

答案 1 :(得分:1)

我猜你只想要直接的孩子,但如果是桌子,你需要所有的TR。您可以使用直接子项选择器>find(),它们仅匹配LI的直接子项OPTIONel元素:

var items = el.find(' > li, > option, tbody tr, tbody th');

为了避免嵌套TR,您甚至可以这样做:

var items = el.find(' > li, > option, > tbody > tr, > tbody > th');

答案 2 :(得分:0)

你应该结帐过滤器() el.filter( “TBODY”)