2013-02-16 87 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