我一直在看其他一些示例,但是不幸的是它们并不完全相同。我正在尝试删除一些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也是单数。

07-24 17:49
查看更多