2010-04-21 168 views
49

如何檢查一個元素是否是最後一個兄弟?jQuery:如何檢查元素是否是最後一個兄弟?

對於行中的最後一個單元,我想執行不同的操作。

這不起作用:

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

而且也不如果我刪除.parent()

+5

這是行不通的原因是因爲你正在比較兩個jQuery對象。只有對象完全相同,對象纔是平等的。 '$(this)== $(this)'是錯誤的..瘋狂的東西。如果你做了if($ this.get(0)=== $ this.parent()。last('td')。get(0))',那麼你的例子就可以工作,因爲它比較了實際的DOM元素。 (http://api.jquery.com/get) – Matt 2010-04-21 09:27:31

回答

12

嘗試

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

在這裏,你走了,但如果你想要做的事其他TDS以及其他明智的使用在其他的答案中的一個描述的最後孩子方法纔有意義。

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

這是更優雅,爲我工作:

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

不錯,這應該被標記爲這個問題的正確答案。 – 2012-03-19 03:48:39

+2

這是我用過的。非常感謝。 – James 2012-03-24 15:47:18

+3

我希望Stack讓我們投票選出一個不同的答案作爲接受的答案! – Alexandru 2016-02-24 19:41:14

2

你可以用這種方式進行編碼。

var $this = $(this); 
if($this.index()==$this.siblings().size()-1) 
{ 
    alert("It's the last."); 
} 
相關問題