2009-07-10 33 views
26

Tôi muốn chỉ chọn các phần tử trên "cấp độ" đầu tiên.jQuery chọn các phần tử ở "cấp độ" thứ nhất

Ex:

<div id="BaseElement"> 
    <p>My paragraph 0</p> 
    <div> 
    <span>My Span 0</span> 
    <span>My Span 1</span> 
    </div> 
    <span>MySpan 2</span> 
    <span>MySpan 3</span> 
    <p>My paragraph 1</p> 
</div> 

Hãy nói rằng bạn có nút BaseElement.

var Element = $("div#BaseElement"); 

Làm cách nào để tìm nạp các nút chỉ từ nút phần tử cơ sở?

$("div#BaseElement span") 

chỉ nên kết quả trong việc MySpan 2 và MySpan 3.

Trả lời

8

Trong API jQuery, khi nó đề cập đến 'hậu duệ' nó có nghĩa là tất cả các cấp, và khi nó đề cập đến 'trẻ em' nó có nghĩa là chỉ có cấp độ đầu tiên

này sẽ giúp bạn có được tất cả trẻ em cấp độ đầu tiên (trong bạn ví dụ p đầu tiên, div, 2 nhịp, và p cuối)

$('#BaseElement > *') 
1

Cũng tham khảo What is the difference direct descendent (>) vs. descendant in jQuery selectors? cho sự khác nhau giữa không gian và > trong selectors. Với không gian bằng để tìm() và > bằng với trẻ em(). Nói cách khác, các cặp sau là tương đương,

$("#BaseElement").children("span"); 
$("#BaseElement > span"); 

Nhận tất cả trẻ em cộng với con cháu của họ:

$("#BaseElement").find("span"); 
$("#BaseElement span"); 
Các vấn đề liên quan