单击时,jQuery不会返回正确的ID

时间:2013-02-16 01:19:44

标签: 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>   
         <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。

2 个答案:

答案 0 :(得分:1)

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

应该是

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

否则您没有在右行操作。 $('.fila')选择所有行,而不是您要将click附加到的行。

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

答案 1 :(得分: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。他们都取得了相同的结果,但第二个是“略微”更有效率。