作者TonyQ (沉默是金)
看板Ajax
标题Re: [JQuery] 选取children的children
时间Tue Jan 6 23:02:45 2009
※ 引述《JYHuang (夏天到了,冷不起来了说)》之铭言:
: 为何用.children("A>IMG")或是.children("A IMG")都无效?
^^^^^^^ 这个用法是属於filter
: 要用到$(this).children("A").children("IMG")才能选择
这是 jQuery filter 的经典问题之一 ,
我曾经试着在
#18dmyXuJ (Ajax) , 这篇的 filter中解释这问题.
简单来说
以一般的 ul/li 来说 ,
$("ul").children() 实际上是这样的 context (由很多li元素构成的阵列)
[li,li,li,.....]
也就是由 li群所构成的集合 ,
filter 的作用是将这群集合中满足条件的资料留下来.
他只针对 jQuery context 中的资料作筛选
也就是 $("ul").children("li:first")
实际上会得到的是
[li,li,li........] <<母集合
-> 过滤条件第一个li
-> 结果 [li]
再换个selector 来举例
$("ul").children("p")
实际上是
[li,li,li........] <<母集合
-> 过滤条件属於 p tag的物件
-> 结果 [] (没有任何母集合的资料满足)
注意 , 这里完全就只看 context 实际指到的东西 ,
不管 li 里面还有包什麽 , 它就只看li.
────────────────────────────────
要「找到子元素中的特定元素」,该用的是 find.
以你原本的例子来看就是 $(this).find("a>img")
或者是用简单的简式 $(查询字串,查询目标)
$("a>img",$(this)) //这个code跟上面的意义一样.
────────────────────────────────
filter 跟 find 用途跟适用的地方可以说是几乎完全不一样 ,
但是却非常容易搞混(我已经看过超过五个人搞混) , 要尽量小心这点.
--
What do you want to have ? / What do you have?
从书本中,你可以发现我的各种兴趣。
从CD中,你可以了解我所喜欢的偶像明星。
或许从文字你很难以了解一个人,但从物品可以。
My PPolis , My past. http://ppolis.tw/user/Tony
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 221.169.78.140
※ 编辑: TonyQ 来自: 221.169.78.140 (01/06 23:02)
1F:推 JYHuang:$(#TonyQ).send('感谢') XDD 01/06 23:09
2F:推 JYHuang:发文前有去翻那些文,结果还是漏看了 囧> 01/06 23:11
3F:→ TonyQ:应该说这本来在没碰到问题之前就不好懂. :p 01/06 23:14
4F:推 chrisQQ:推~ 感觉以後一定会用到 XD 01/06 23:55
5F:推 gpmm:有下有推~(咦 01/07 00:40