這很奇怪我已類似這樣的標記jQuery選擇器,語法或錯誤?
<div id='div1'>
<ul id='ul1'>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
<div id='div2'>
<ul id='ul2'>
<li>4</li>
<li>5</li>
<li>6</li>
</ul>
</div>
</div>
jQuery中我有這樣的選擇:
var el = $('#div2');
var liList = el.children('ul:first > li');
這應該返回第二組裏的,但它返回的第一套。 但是,如果我這樣做:
var el = $('#div2');
var liList = el.children('ul:first').children('li');
它返回首盤。任何想法發生了什麼?
這讓我拿一個雙重考慮,因爲第一組裏的是不是div2
我可以在我的代碼明顯改變後者甚至兒童,但它是一個bug或我只是不寫我的選擇正確?
UPDATE:
我正在運行的jQuery 1.4.1和使用的jsfiddle像有人建議用以下1.4.2(最接近的選項,以我的配置)和1.4.4表現出不同的結果。所以看起來好像是我寫了一個錯誤的選擇器,如Rocket所指出的那樣,jquery團隊修復了1.4.1中的錯誤。 :)
愛是愛的StackOverflow :)
我看不出有什麼毛病代碼。如果你點擊[這裏](http://jsfiddle.net/2YEHj/),你可以看到你的代碼在運行,前面的例子匹配正確的li項目。 – 2011-01-06 17:04:14
謝謝亞歷克斯,我也做了一個小提琴,但你擊敗了我的評論。 – Tesserex 2011-01-06 17:07:04
@Alex,不完全。第一個例子返回'ul',而第二個例子返回'li'。 – 2011-01-06 17:07:28