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"));