我正在尝试编写一个选择器,该选择器必须同时涵盖ul
、table
和select
和 selects li
,tr
并且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");
问题:
有没有办法使用该children()
方法并且还选择“孩子的孩子”?如果没有,是否有更好的方法使用 jQuery?
谢谢!
编辑:
我正在寻找一种简短的方法来做到这一点:
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
时候
table > returns: tr, tr, tr, tr
list > returns: li, li, li
select > returns: option, option, option
controlgroup > returns a.ui-btn, a.ui-btn, div.ui-btn
谢谢@adeneo!