作者ThreeDay0905 (三天)
看板Ajax
标题[问题] 如何用jQuery指定阶层抓取DOM物件
时间Wed Sep 29 18:50:30 2010
前辈好,
假如我的HTML架构为
==========================================
<div id="mainContainer">
<!--第一层第一个ul-->
<ul>
<li>1 - 1
<!--第二层第一个ul-->
<ul>
<li>1 - 1 - 1
<!--第三层第一个ul-->
<ul></ul>
</li>
<li>1 - 1 - 2</li>
</ul>
</li>
<li>1 - 2
<!--第二层第二个ul-->
<ul></ul>
</li>
<li>1 - 3</li>
<li>1 - 4</li>
</ul>
<!--第一层第二个ul-->
<ul>
<li>2 - 1</li>
</ul>
</div>
==========================================
我想要抓取第一层的ul下的第一层li
我可以下
==========================================
$('
#mainContainer>ul>li');
==========================================
只是想请问,假如我已经有一个jQuery物件
==========================================
$container = $('
#mainContainer');
==========================================
我要怎麽使用$container这个物件去找出他下之下第一层的ul的第一层li呢
我知道可以用
==========================================
$container.children('ul').children('li');
==========================================
去找出我要的物件
只是这个状况是简化後的过程
实际上用起来可能是要找第n层的ul的第m层li
或着更复杂的状况
这样用.chilren([selector])去串接
不只难以阅读,可能效能上也会有影响(? 其实不确定)
是以想请问前辈
jQuery有办法用指定阶层数的方法找到指定的物件吗
例如说$container下第n层的ul之类的语法
又或着有比较简单易读的写法呢
--
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.169.184.210
1F:推 s25g5d4:试试看selector用ul:eq(数字) 09/29 19:00
2F:→ s25g5d4:不过eq好像是抓相邻的... 09/29 19:00
3F:→ s25g5d4:还有.find("ul ul ul li")这个.. 09/29 19:01
4F:→ ThreeDay0905::eq是抓集合中的第几个 没法抓到第几层.. 09/29 19:24
5F:→ ThreeDay0905:用find('ul ul ul li') 09/29 19:26
6F:→ ThreeDay0905:它会连符合('ul ul ul ul ul ul li')都一起抓出来 09/29 19:26
7F:推 s25g5d4:阿find里面是给你写seclector的阿 你也可以写ul>li 09/29 19:47
8F:→ s25g5d4:selector 09/29 19:47
9F:→ tn801534:我回在Web_Design版了 09/29 20:55
10F:→ TonyQ:find ("> ul > ul > ul > li") 这样就好啦 09/29 21:46
11F:→ TonyQ:我觉得你给了他一个太复杂的结构了,这麽复杂的结构倒不如用 09/29 21:49
12F:→ TonyQ:class来找比较清楚明确,因为 dom tree会变但class不太会变 09/29 21:49
13F:→ ThreeDay0905:谢谢 find('>ul xxxx')是我要找的语法 09/29 22:52
14F:→ ThreeDay0905:现在才知道原来[selector]可以用'>'开头 受教了 09/29 22:52
15F:→ dlikeayu:>是下一层(不包括下下下下下*n层的任一符合名字的物件) 09/30 03:54