JQuery从ajax加载的数据中获取元素id

我使用JQuery从PHP页面加载数据,它工作正常。 现在我希望当我点击其中一个加载的元素时,警报会显示所选元素的ID。 我能怎么做? 如果我将一个元素手动放入div“输出”它可以工作,但是使用$ .ajax()创建的元素它不起作用。 这是代码。

 
 $(document).ready(function () { // Autocomplete $("#ricerca").keyup(function () { $(function () { var ricerca = $("#ricerca").val(); $('#output').html(""); if (ricerca.length > 0) { $.ajax({ url: 'dati.php', method: 'POST', data: { ricerca: ricerca }, dataType: 'json', success: function (data) { for (var i in data) { var row = data[i]; var id = row[0]; var name = row[1]; $('#output').append("" + name + "
"); } } }); } }); }); // Show ID $('#output a').click(function () { alert(this.id); }); });

对于动态注入的html,您需要执行以下操作:

 $(document).on("click", "#output a", function() { alert(this.id); }); 

基本上#output在您第一次加载页面时不会出现,因此您需要将事件绑定到它。

因此.on允许您将事件委托给处理程序。

有用的url:

什么是DOM事件委托?

直接和委派活动

您必须使用.on()来注册动态生成元素的click事件

 // Show ID $(document).on("click",'#output a',function() { alert(this.id); }); 

它应该是

 alert($(this).attr("id"));