Jquery选择器在td上无法运行

时间:2013-04-30 20:12:21

标签: javascript jquery html ajax

我在选择每个tr的第一个2 td时遇到问题(我需要让它们变得可舔)和每个tr(不同链接)的最后一个td。有人可以帮我代码吗?我似乎无法把它弄清楚。代码似乎合法,但它不起作用。 这是js和html:

JS

$(".rand_notif td:lt(2)").click(function(){
    $(".rand_notif").html("asd");
})

HTML (不知怎的......还是js但是html)

$.each(data.notif,function(i,x){
    var cant='';

    if(x.cant>0){var cant = x.cant+"x";}
    notificari+="<tr class='spacer_2'></tr><tr class='notificari rand_notif' record='"+x.id+"'><td>"+cant+"</td><td>"+x.nume+"</td><td>Refuz</td></tr>";
});

实际的html

<table cellspacing="0" id="tabel_notificari">
    <tr class="spacer_1"></tr>
    <tr class="table_head notificari">
        <th width="30"></th>
        <th>Notificari</th>
        <th width="86"></th>
    </tr>
</table>
编辑:问题解决了。问题是,如评论中所解释的那样,元素首先被绑定然后添加,因此绑定不存在。 解决方案:

$("#tabel_notificari").on("click", ".rand_notif td:lt(2)",function(){$(".rand_notif").html("asd");});

2 个答案:

答案 0 :(得分:2)

您正在通过javascript创建表格单元格,因此您需要使用其他方法将click事件附加到它们。尝试使用附加到表本身的“ON”方法,如下所示。这将适用于DOM加载后添加到表中的任何TD。

$("#tabel_notificari").on("click", ".rand_notif td:lt(2)", function(e) {
   $(this).html("asd");
});

答案 1 :(得分:1)

HTML中没有TD标记。你的意思是THE?