从Ajax生成的DOM元素返回id

Returning id from Ajax generated DOM elements

本文关键字:元素 返回 id DOM Ajax      更新时间:2023-09-26

我知道存在重复(jQuery:如何获取动态生成元素的ID?)但我尝试了解决方案,但无法解决问题。

ajax/jquery查询返回了一个表,当检查该表时,它会返回一个格式正确的表:

<table border="1">
<tbody>
<tr><td>Example</td><td class="del" id="1">Delete</td></tr>
<tr><td>Example2</td><td class="del" id="2">Delete</td></tr>
</tbody>
</table>

jquery代码为:

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

如果我把表直接放在HTML中,它可以正常工作,但是当它从ajax生成时,它甚至不会生成警报(chrome也不会返回错误)。

注意,如果这是一个愚蠢的东西,比如一个命名错误的id,我会提前道歉,但我已经想了3/4个小时了,结果被卡住了!

编辑:

ajax调用是:

$.ajax({type : 'POST', url : 'response.php'}).done(function(response){
        $('#result').html(response);
    });

按照以下重写javascript

$(document).on("click", ".del", function(){ 
var id = $(this).attr("id");
alert(id);
 });        // jQuery 1.7+

有关详细信息,请参阅以下文章http://api.jquery.com/on/

这是使用委托,我建议使用它,而不是为每个新创建的元素设置多个处理程序。

$(document).on('click','.del',function(){
        var id = this.id;
        alert(id);
    });

使用最接近的静态容器而不是文档作为委托目标会更好,但我不知道你的代码。。。

演示

您可以使用load函数来评估服务器上所有加载的js。使用$("#id").load(<url>,<callback of success>);代替

http://api.jquery.com/load/

ajax调用在哪里?它是如何构建的?

根据您的ajax调用,您可以将函数放入回调中,然后它将附加到元素。