2010-04-21 36 views
49

Làm cách nào để kiểm tra xem phần tử là anh chị em cuối cùng?jQuery: làm thế nào để kiểm tra xem một phần tử là anh chị em cuối cùng?

Đối với ô cuối cùng trong một hàng, tôi muốn thực hiện một hành động khác.

này không hoạt động:

$('td').each(function(){ 
    var $this = $(this); 
    if ($this === $this.parent().last('td')) 
     { 
      alert('123'); 
     } 
}) 

Và cũng như thế nó nếu tôi loại bỏ .parent().

+5

Lý do điều này không hiệu quả là vì bạn đang so sánh hai đối tượng jQuery với nhau. Các đối tượng chỉ bằng nhau nếu chúng chính xác là cùng một đối tượng. '$ (this) == $ (this)' là sai .. Crazy stuff. Ví dụ bạn sẽ làm việc nếu bạn đã làm 'if ($ this.get (0) === $ this.parent(). Last ('td'). Get (0))', vì nó so sánh các phần tử DOM thực tế. (http://api.jquery.com/get) – Matt

Trả lời

12

Hãy thử

$('tr td:last-child').each(function(){ 
    var $this = $(this); 
    alert('123'); 
}); 
7

Ở đây bạn đi, nhưng điều đó chỉ có ý nghĩa nếu bạn muốn làm một cái gì đó cho tds khác cũng khác khôn ngoan sử dụng cuối cùng con phương pháp mô tả trong một trong những câu trả lời khác .

$('td').each(function(){ 
    var $this = $(this); 
    if ($this.index() == $this.siblings().length-1) 
     { 
      alert('123'); 
     } 
}) 
277

Đây là thêm thanh lịch và làm việc cho tôi:

if($(this).is(':last-child')) 
{ 
    alert('123'); 
} 
+30

Tốt, điều này sẽ được đánh dấu là câu trả lời đúng cho câu hỏi này .. –

+2

Đây là một trong những tôi đã sử dụng. Cảm ơn rất nhiều. – James

+3

Tôi muốn Stack cho phép chúng tôi bỏ phiếu để đánh dấu câu trả lời khác với câu trả lời được chấp nhận! – Alexandru

2

bạn có thể mã hóa theo cách này.

var $this = $(this); 
if($this.index()==$this.siblings().size()-1) 
{ 
    alert("It's the last."); 
} 
Các vấn đề liên quan