作者TonyQ (沉默是金。)
看板Ajax
标题Re: [js] jQuery的$选择器?
时间Wed Apr 14 12:01:23 2010
※ 引述《kiki1503 (琦琦壹伍零参)》之铭言:
: 目前正在学习jQuery..看到一大堆的范例
: 好像选择器部分都用来用去
: 请问一下
: 以下三种有什麽不一样
底下前两种是采用css selector 的写法 ,
你可以先翻翻有关 css selector相关的书籍 .
: $("table tr")
这是 table 底下[所有]的tr项目 , 而且子阶层也会列入搜寻.
比方说
<table class='test'>
<tr>
<Td>
<table>
<tr><td></td></tr>
</table>
</td>
</tr>
<tr>
<td></td>
</tr>
</table>
这样搜寻的条件会取到三个元素 . 连子table的tr也会列进
: $("table > tr")
这是只搜寻 table 底下第一层有的 tr
但是承前例 , 这个 case 一样会取到三个 ,
因为子table的tr 一样符合是 table底下的第一层 tr .
因为tr一定要在table底下 ,
所以这条件跟第一个条件在这个特定情形下是等价的
但是如果承前例 ,把这两个条件改成
$("table.test tr") 跟 $("table.test >tr") 就不一样了
前者是会到三个 , 後者会取到 两个.
相关延伸资料:
#18cqIepY (Ajax)
: $("table").children("tr")
这是filter , 从 table 的第一层子层中去过滤出为tr标签的元素,
这个描述等价 $("table > tr") .
有关filter 延伸阅读:
#18dmyXuJ (Ajax)
: 看起来都一样
: 可是范例就不一定用哪个
: 我都搞混了..
万变不离其宗 , 你先弄懂css selector的规则 ,
就可以搞懂selector的基础了 ,
原则上filter 对初学者而言 , 是辅助性质而非必要性质的东西 ,
且容易搞混 , 可以考虑先略过有关 filter 的函式.
--
▄▅▆▇███▇▆▅▄▃ ╰┼╯─╮ ╮
◥███████████◣ ╰┼╯=│=│
◥██████───────◣ *. ╯ ╯ ╯ の 物 语 .*
◥███████──────◣ ~ ◢◣ ◢◣
◥██████───────◤ ◥◤* 空白的世界.翼
*◥◤
◥██▁▂▃▄▅▆▇███▆▅▄▃▂▂
~telnet://tony1223.twbbs.org
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 116.59.134.147
1F:推 kaijajan:tonyq的解释清楚多了 XD 04/14 12:02
2F:推 tomin:若列出是那3个,2个会更清楚 04/14 12:43
3F:推 kiki1503:看完Tony大的从js到jQuery系列真是收获不少 04/14 12:52
4F:→ kiki1503:实在是太受用了...非常感谢各位的回覆..我弄懂了 04/14 12:54
5F:→ TonyQ:@tomin 基本上我比较喜欢点到为止 . XD 而且我算讲很细的了 04/14 14:45
6F:→ TonyQ:想说如果说回应後还有问题再回答就好了...囧rz 04/14 14:46
7F:推 tomin:我自己是举例那里卡比较久 因为没结构化缩排 要找、数 04/14 20:42
8F:→ tomin:倒不是细不细的问题 而是要让人看得懂 只是建议而已 04/14 20:45
原来你说的是缩排的问题 XD 那这样修改一下应该会好一些.
※ 编辑: TonyQ 来自: 220.133.218.161 (04/14 20:55)
9F:推 tomin:好多了 不过我本来的确是希望能列出来 因为好不容易找出来 04/14 21:20
10F:→ tomin:想要"对答案" 04/14 21:20
11F:→ TonyQ:两个就是黄色的 , 三个就是黄色加蓝色. XD 04/14 21:51
※ 编辑: TonyQ 来自: 220.133.218.161 (04/14 21:51)
12F:推 joy:$("table.test tr") 应该与$(".test tr") ? 相同吧 @@? 04/15 01:28
13F:→ joy:T大解释就像在看书一样@@ 04/15 01:30
14F:→ TonyQ:joy 在这个case 一样 , 但是实际上意义不太一样. 04/15 08:34
15F:→ TonyQ:tabe.test 是说 有test这个class的table 04/15 08:34
16F:→ TonyQ:*table.test 04/15 08:34
17F:→ TonyQ:.test 是说有test 这个class 的元素(不限定table) 04/15 08:35
18F:推 papapa21:有看有推! 04/15 23:28
19F:推 joy:可以耍赖一下吗@@? 因为tr只有在table..所以等价 XD 04/16 00:14
20F:→ joy:不过T大讲的table.test的确比较适合^^.. 04/16 00:15
21F:→ grence:table下还可以有 thead, tbody. 04/16 01:42
22F:→ TonyQ:我有说在这特定情形下等价啊 XD 04/16 08:59