Javascript 如何获取在a";中使用ajax添加的元素的值;“生活”;事件
事情是这样的- 单击事件会在页面上添加一组元素,它们都具有相同的id(这里有什么问题吗?) 我使用live函数将单击事件分配给所有这些元素:Javascript 如何获取在a";中使用ajax添加的元素的值;“生活”;事件,javascript,jquery,Javascript,Jquery,事情是这样的- 单击事件会在页面上添加一组元素,它们都具有相同的id(这里有什么问题吗?) 我使用live函数将单击事件分配给所有这些元素: $(“#标记”).live('click',function(){ log($(“#tag”).html()); }); 当我单击其中任何一个元素时,只记录第一个元素的值 如何让单击事件知道我实际单击了哪些元素? 非常感谢 更新:使用类和$(这)是一种方法。问题解决了。谢谢格里格斯和约翰 尝试使用$(this.val()或$(this.html() 编辑
$(“#标记”).live('click',function(){
log($(“#tag”).html());
});代码>
当我单击其中任何一个元素时,只记录第一个元素的值
如何让单击事件知道我实际单击了哪些元素?
非常感谢
更新:使用类和$(这)是一种方法。问题解决了。谢谢格里格斯和约翰 尝试使用$(this.val()
或$(this.html()
编辑
如果您想循环遍历所有thr#标记元素,那么仍然可以使用$(this)将单击的标记与正在循环遍历的元素进行检查。如果这有道理的话
顺便问一下:为什么有多个元素具有相同的ID?那有点糟糕。更好的方法可能是让元素具有公共类名,您可以引用和附加事件。如果添加的元素确实都具有相同的ID,而不是相同的类,那么这就是一个问题。如果需要帮助,您需要发布添加元素的代码
从您发布的代码中可以看出,您正在将live方法附加到.tag类,但在函数中,您引用的是一个ID为#tag的元素。你可能想了解一下两者之间的区别
尝试以下方法来解决您的问题:
$(".tag").live('click', function() {
console.log($(this).html());
});
或者,您可以执行以下操作以获取单击的元素:
$(".tag").live('click', function(event) {
console.log($(event.target).html());
});
我想我最好还是去上课,然后开始解决这个问题。然后我不得不走了,所以我决定发布这个问题,看看会得到什么样的回应。我的错。