给出以下html:
<ul class="accordion">
<li class="accountStatus">
<a href="#">
<ul class="sub-menu"></ul>
</li>
<li class="Personal">
<a href="#">
<ul class="sub-menu"></ul>
</li>
</ul>
我知道以下jquery select适用于两个元素(a和子菜单):
$('.accordion > li > a')
$('.accordion li > .sub-menu');
但这在ie6中不起作用。所以任何人都可以给我另一种选择,以选择需要选择的确切元素。
谢谢,
答案 0 :(得分:1)
一种方法是使用您在IE6中知道的方法获取所有节点,然后在继续之前转换为jQuery对象,例如: (&amp; fiddle)
var all_uls = document.getElementsByTagName('ul'), i = all_uls.length,
interesting_uls = [], interesting_as = [];
while (i--) {
if (all_uls[i].className === 'accordion') {
// get ul.accordion
interesting_uls.push(all_uls[i]);
}
}
all_uls = interesting_uls, i = all_uls.length; // reset for next class lookup
while (i--) {
if (all_uls[i].className === 'sub-menu') {
// get ul.accordion ul.sub-menu
interesting_uls.push(all_uls[i]);
}
// get <a>s
interesting_as = interesting_as.concat(all_uls[i].getElementsByTagName('a'));
}
$(interesting_uls); // to jQuery obj
$(interesting_as);