2013-02-16 80 views
0

時,jQuery不會返回正確的ID我使用PHP顯示數據庫中的一些結果。當我點擊

while ($row = $stmt->fetch()) { 
print " 
    <tr id = '".$row[0]."' class = 'fila'> 
     <td><input type='checkbox' name='checkboxx[]' value = '".$row[0]."'</td> 
     <td>".$row[1]."</td> 
     <td>".$row[3]."</td> 
     <td>".$row[4]."</td> 
    </tr> 
"; 
} 

用jQuery,我想顯示每行(TR)的ID,如果它被點擊。

我有這段代碼。

$(document).ready(function(){ 
    $(".fila").click(function(){ 
     var id = $('.fila').attr('id'); 
     alert(id); 
    }); 
}); 

問題:它始終顯示相同的ID時,我在不同的行點擊,而事實上,我看的源代碼,並且每個TR具有其ID,因爲它們是從DB選擇它們是不同的。

+0

試着將'alert(this.id)'放在click函數裏面,那應該可以。 – adeneo 2013-02-16 01:26:38

回答

1
var id = $('.fila').attr('id'); 

應該

var id = $(this).attr('id'); 

否則你是不是在正確的行操作。 $('.fila')選擇全部爲的行,而不是您將click附加到的那個。

如果您使用$(this),它會提醒自己的身份,在這種情況下,它本身就是您剛纔單擊的正確行。

+1

每次有人使用'$(this).attr('id')'而不是'this.id'時,上帝殺死一個lolcat。 – 2013-02-16 01:33:40

1

改成這樣......

$(document).ready(function(){ 
    $(".fila").click(function(){ 
     var id = $(this).attr('id'); 
     alert(id); 
    }); 
}); 

$(this)是用戶點擊,點擊事件處理程序中的元素。

你可以選擇使用這個......

$(document).ready(function(){ 
    $(".fila").click(function(){ 
     var id = this.id; 
     alert(id); 
    }); 
}); 

它不依賴於jQuery來獲取點擊的元素的ID。他們都取得了相同的結果,但第二個是「稍微」更高效。

+0

好,這是我想要的。謝謝! – frankie4 2013-02-16 01:24:22

+0

相對於彼此,直接訪問該屬性的效率要高得多。相對於人們對時間的看法,它們本質上是相同的。 – 2013-02-16 01:24:43

+0

不用擔心隊友 - 無論哪種方式適合,你有兩種選擇:) – Archer 2013-02-16 01:24:48