Javascript jQuery没有';单击时,无法返回正确的ID

Javascript jQuery没有';单击时,无法返回正确的ID,javascript,jquery,Javascript,Jquery,我使用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>

我使用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>
";
}
问题:当我在不同的行中单击时,它总是显示相同的ID,而事实上,我查看源代码时,每个TR都有其ID,这是不同的,因为它们是从DB中选择的

   var id = $('.fila').attr('id');
应该是

   var id = $(this).attr('id');
否则,您将无法在正确的行上进行操作
$('.fila')
选择所有行,而不是要将
单击添加到的行

如果您使用
$(this)
,它将提醒自己的id,在这种情况下,它本身就是您刚才单击的正确行。

将其更改为此

$(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。它们都达到了相同的效果,但第二种方法“稍微”更有效。

相对而言,直接访问属性的效率要高得多。相对于人们感知时间的方式,它们基本上是相同的。不用担心,配偶-无论哪种方式适合,你都有两个选择:)试着在点击功能中放置
警报(this.id)
,这应该会起作用。每当有人使用
$(this.attr('id')
,而不是
this.id
,上帝就会杀死一只懒猫。
$(document).ready(function(){
    $(".fila").click(function(){
       var id = this.id;
       alert(id);
    });
});