我一直在看其他一些示例,但是不幸的是它们并不完全相同。我正在尝试删除一些onclick数据(此处省略了该部分,仅需要该ID)。问题是它为我想要的ID返回未定义。
function deleteMessage(){
var $currentId = $(this).closest(".ulrecords").attr('id');
alert("ID: " + $currentId)
}
该方法被称为如下
<a href="javascript:deleteMessage();" id="amessage">
HTML看起来像这样
<ul class="chat-messages">
<ul id="msg_1234567890_a1bs2e" class="ulrecords">
<li>
John
<span>27 minutes ago</span>
<a href="javascript:deleteMessage();" id="amessage"> X</a>
</li>
<li id="limessage">
Some message here
</li>
</ul>
<ul id="msg_9234742878_73bhad" class="ulrecords">
<li>
John
<span>28 minutes ago</span>
<a href="javascript:deleteMessage();" id="amessage"> X</a>
</li>
<li id="limessage">
Some other message here
</li>
</ul>
</ul>
因此,当我单击ul之一时,我想获取
希望任何人都可以指出正确的方向
最佳答案
因为this
在您的情况下是窗口。
要么传递对您单击的元素的引用
<a href="javascript:deleteMessage(this);" id="amessage">
和
function deleteMessage(elem){
var $currentId = $(elem).closest(".ulrecords").attr('id');
alert("ID: " + $currentId)
}
或更妙的是,将事件附加到eventListeners中。
$(document).on("click", ".ulrecords", function () {
alert(this.id);
});
要么
$(document).on("click", ".ulrecords a", function () {
var $currentId = $(this).closest(".ulrecords").attr('id');
});
ID也是单数。