2011-10-20 28 views
5

tôi có chức năng này:JQuery Find Next tử Bên trong Bảng Row

$("span.expandimg").click(function(){ 
    $(this).nextAll(".toggle_container:first").slideToggle("slow"); 
}); 

đó đã làm việc tốt với:

<span class="expandimg"><a href="#"><img id="iexpand" src="images/expand.png" border="0" /><img id="icollapse" src="images/collapse.png" border="0" /></a></span>&nbsp;<a href="asdfa" class="DSF">First Link</a> 

<div class="toggle_container"> 
Some Text 
</div> 

Nhưng bây giờ tôi đang đặt "expandimg" bên trong một cột bảng và "toggle_container "bên trong một cột khác. Một cái gì đó như thế này:

<tr> 
    <td><span class="expandimg">......</td> 
    <td><div class="toggle_container">.....</td> 
<tr> 

Làm cách nào để tìm phần tử "toggle_container" ngay bây giờ? Tôi muốn nhấp vào "expandimg" để mở rộng "toggle_container", nhưng nó không hoạt động với chức năng tôi có.

Cảm ơn!

+0

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

+0

Vâng, tôi nghĩ rằng bạn nên sử dụng .parent(): $ .parent (this)(). parent(). find ('. toggle_container') ... http://api.jquery.com/parent/ – biziclop

+1

@RaduBilei: Bất kỳ lý do nào khiến bạn không đăng câu trả lời đó? –

Trả lời

10
$("span.expandimg").click(function(){ 
    $(this) 
     .closest("tr") 
     .find("td .toggle_container") 
     .slideToggle("slow"); 
}); 
0

Với HTML bạn đang có này nên làm việc -

$("span.expandimg").click(function(){ 
    $(this).parent().siblings().find(".toggle_container:first").slideToggle("slow"); 
}); 

Demo - http://jsfiddle.net/QAkKP/

+0

Không cần phải làm 'siblings' và sau đó' tìm', đi thẳng đến 'find'. – Shef

+0

Thực ra bạn đã làm đúng, bạn đã làm theo cách khác, điều này có thể chậm hơn tùy thuộc vào số lượng ô mà bảng OP sẽ có ở đó. Ngoài ra, không cần thiết phải xây dựng một đối tượng với tất cả các phần tử 'td' của' tr' đó. – Shef

0
$("span.expandimg").click(function(){ 
    $(this).parents("tr").find(".toggle_container").slideToggle("slow"); 
}); 

Goes đến yếu tố phụ huynh TR, tìm kiếm rằng đối với .toggle_container.

nên làm việc :)

+1

Đây sẽ là cách chậm hơn 'gần nhất', hơn nữa nó sẽ xây dựng một đối tượng của toàn bộ cây cha mẹ không chỉ là cây trực tiếp. – Shef

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