我一直在看其他一些例子,但不幸的是它们并不完全相同.我试图删除一些数据onclick(在这里省略该部分,只需要id).问题是它为我想要的id返回undefined.
function deleteMessage(){
var $currentId = $(this).closest(".ulrecords").attr('id');
alert("ID: " + $currentId)
}
Run Code Online (Sandbox Code Playgroud)
该方法被称为如下
<a href="javascript:deleteMessage();" id="amessage">
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
因此,当我点击其中一个ul时,我想获得希望,任何人都可以指出我正确的方向
因为this在你的情况下是窗口.
传入对您单击的元素的引用
<a href="javascript:deleteMessage(this);" id="amessage">
Run Code Online (Sandbox Code Playgroud)
和
function deleteMessage(elem){
var $currentId = $(elem).closest(".ulrecords").attr('id');
alert("ID: " + $currentId)
}
Run Code Online (Sandbox Code Playgroud)
或者更好的是,使用eventListeners附加事件.
$(document).on("click", ".ulrecords", function () {
alert(this.id);
});
Run Code Online (Sandbox Code Playgroud)
要么
$(document).on("click", ".ulrecords a", function () {
var $currentId = $(this).closest(".ulrecords").attr('id');
});
Run Code Online (Sandbox Code Playgroud)
ids也是单数.