我正在尝试构建一个网页,它将从json文件构造元素并将click函数附加到这些元素。
$(document).ready(function(){
$.ajax({
url: 'database.php',
type: "POST",
dataType: 'json',
success: function (datas) {
(datas);
for (var x = 0; x < datas.data.length; x++) {
var id = datas.data[x].ID;
var ip = datas.data[x].IP;
var ips='<div class="ip"><span id="ids">'+id+'</span><span id="number">'+ip+'</span></div>';
$('#left').append(ips);
}
}
});
$('.ip').click(function () {
alert($(this).children('#ids').text());
});
});
上面的代码成功构建了元素,但点击功能不起作用。
答案 0 :(得分:3)
您可以使用on函数,它用于将事件处理程序应用于尚未创建的元素。
如果您有当前的click
设置,请尝试使用以下内容:
$(document).on('click', '.ip', function(){
alert($(this).children('#ids').text());
});
正如@Pete所建议的那样,在循环中分配相同的id
属性不是一个好主意,它们应该对文档是唯一的。请考虑通过class
名称找到它们,这样您就可以提醒:
alert($(this).children('.MyIdsSpan').text());