2015-12-10 53 views
0

我想要做的是循環遍歷表的每一行,並將每行的第一個單元格與前一行的第一個單元格進行比較。似乎它應該是簡單的,我相信它,但現在,我迷失了它.. 這是我擁有..我想我接近,但不能完全弄清楚我有什麼問題。如何在前一行中比較td和td

$("tr td:first-child").each(function(){ 
    if(($(this).text()) == lastId){ 
    console.log("YEP, the same"); 
    }else{ 
    console.log("no, different Id"); 
    } 
    var lastId = $(this).text(); 
}); 
+2

在循環外定義'lastId'。因爲它沒有在比較中定義。 –

+0

在實際使用之前,在範圍外聲明'var lastId'。 –

+0

它不會被定義爲第一個'td'。 – Arg0n

回答

3

您需要將變量lastId保留在另一個作用域中。這裏每次迭代都會丟失。

var lastId; 
$("tr td:first-child").each(function(){ 
    if(($(this).text()) == lastId){ 
     console.log("YEP, the same"); 
    }else{ 
     console.log("no, different Id"); 
    } 
    lastId = $(this).text(); 
}); 
+0

我不知道我錯過了什麼...謝謝。我一直在看這一個小時,只是看不到發生了什麼。 – trouble706

+0

我會盡快接受你的回答..只是試過,並說我必須等5分鐘。 – trouble706

+1

通過在Firefox或Chrome中使用調試器,您可以輕鬆找到。 在if語句中創建一個斷點並逐個運行它,您會發現變量lastId將會是未定義的。 :) –