這兩個jQuery語句有什麼區別?他們似乎通過獲得所有兒童div標籤來做同樣的事情。在jQuery選擇器中,直接後代(>)與後代有什麼區別?
$("#mainblock div")
$("#mainblock > div")
這兩個jQuery語句有什麼區別?他們似乎通過獲得所有兒童div標籤來做同樣的事情。在jQuery選擇器中,直接後代(>)與後代有什麼區別?
$("#mainblock div")
$("#mainblock > div")
$("#mainblock > div")
直接子=孩子的唯一水平
$("#mainblock div")
=所有孩子的+ desendents。
如果你要找的節點是mainblock的父節點,最好使用>除了更精確之外,它也更快。 – Neil 2012-04-19 07:07:09
第一個將得到所有div
S的#mainblock
後裔。第二個將得到所有div
S中的的#mainblock
看一看jQuery的Selectors
Child Selector ("parent > child")
- 層次選擇由「父母」指定元素的「小孩」中規定的所有直接子元素。
Descendant Selector ("ancestor descendant")
- 層次結構選擇作爲給定祖先的後代的所有元素。
$("#mainblock div")
匹配任何div元素,它是#mainblock的後代。
$("#mainblock > div")
匹配任何div元素是#mainblock的子元素。
$("#mainblock div")
這一目標的所有div內「#mainblock」不管它是「#mainblock」直接子,或主塊左右的兒童的孩子。
$("#mainblock > div")
這將只針對「#mainblock」的直接子DIV並忽略其他DIV。如果你只有直接的孩子,這個比你快。因爲它不是試圖在孩子的其他元素內部找到。
$( 「#DIV mainblock」)找到所有下#mainblock的div
$( 「#mainblock> DIV」),才發現其子
假設你有以下HTML結構:
<div id="mainblock">
<div>
<div></div>
<div></div>
</div>
<div></div>
<div></div>
</div>
然後
$("#mainblock div").length = 5
$("#mainblock > div").length = 3
我不同意這個問題被關閉,因爲「過於狹窄。「現在每個人都使用jquery,我敢打賭,大多數用戶不能給你這個問題的答案,這是如何太狹隘/本地化的? – agmin 2012-12-12 18:55:57