【问题标题】:Get the id of a link when clicked using Javascript使用Javascript单击时获取链接的ID
【发布时间】:2023-03-10 17:19:01
【问题描述】:

我是 Javascript 新手,正在尝试设计一个表单,其中包含通过单击链接而不提交表单来创建和删除的元素。

脚本依赖于获取被点击按钮的唯一id(css和<a>链接),并计算包含链接的行的id,然后删除整个<tr>元素。

为此,我正在尝试获取点击链接的 ID。链接及其嵌入的元素本身是由 javascript 在单击另一个按钮时生成的。

我尝试了以下方法:

var btnDel=document.createElement("a");
btnDel.id="NS_D"+count;
btnDel.className="btn btn-danger";
btnDel.addEventListener('click', function() 
{            
    alert(e.id);
}, false);
var btnText=document.createElement("span");
btnText.className="btn-label";
btnText.innerHTML="Delete";
btnDel.appendChild(btnText);            
td.appendChild(btnDel);     

虽然生成了按钮,但我没有收到预期的警报。我哪里出错了?

【问题讨论】:

  • 警报声明中的 e 引用了什么?
  • 啊,我以为 e 引用了事件对象。显然我想要的是this

标签: javascript html onclick click


【解决方案1】:

您需要使用this 而不是e

alert(this.id);

在您的事件处理程序中。

Demo here.

(您还需要习惯于在控制台可见的情况下运行代码 - 这会告诉您您看不到 alert 的原因是 e 不存在。)

【讨论】:

    【解决方案2】:

    在事件处理程序中,this 指的是元素,所以你可以这样做:

    alert(this.id);
    

    要到达<tr>,您可以使用parentNode 上树:

    console.log(this.parentNode.parentNode);
    

    MDN docs

    【讨论】:

      猜你喜欢
      • 2012-04-28
      • 2021-03-27
      • 2014-07-03
      • 1970-01-01
      • 1970-01-01
      • 2012-11-28
      • 1970-01-01
      • 2023-04-07
      • 2016-01-02
      相关资源
      最近更新 更多