2011-10-27 29 views
6

Làm thế nào tôi có thể nhận được phần tử div tiếp theo và sau đó tất cả các con của nó?jQuery lấy yếu tố tiếp theo và tất cả các con của nó

<div class="1"></div> 
<div class="2"> 
    <div class="child1"></div> 
    <div class="child2"></div> 
</div> 
<div class="3"> 
    <div class="child1"></div> 
</div> 

vì vậy, nếu $(this) hiện là lớp 1, tôi có thể chỉ đến lớp 2 và tất cả các con của nó như thế nào. Và tôi không thể tham khảo nó bằng tên lớp của nó vì tôi sẽ không biết đó là gì.

tôi về cơ bản tìm cách để hợp nhất các báo cáo 2 thành 1.

$(this).next('div').animate({height : 'toggle'}); 
$(this).next('div *').animate({height : 'toggle'}); 
+2

http://api.jquery.com/category/traversing/ – Blazemonger

Trả lời

12
$(this).next('div').children().andSelf().animate({height : 'toggle'}); 
+0

Cảm ơn Matt, mà làm việc tuyệt vời. Tôi sẽ phải quấn tâm trí của tôi xung quanh cách 'này' đã trở thành' $ (this) .next() 'để nó có thể tham chiếu chính nó trong' andSelf() 'như là anh chị em 'gốc' này. –

+0

Câu trả lời ngắn: jQuery duy trì một chồng nội bộ của các đối tượng được chọn. Các phương thức như '.next()' và '.children()' đẩy vào ngăn xếp; ['.end()'] (http://api.jquery.com/end) hiện ra. Tôi sẽ suy ra rằng '.andSelf()' trông thấp hơn một cấp trong ngăn xếp. –

+0

thật tuyệt vời ... Cảm ơn Matt –

Các vấn đề liên quan