1

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

该脚本依赖于获取单击按钮(css 和<a>链接)的唯一 id,并计算包含链接的行的 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);     

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

4

2 回答 2

2

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

alert(this.id);

要到达,<tr>您可以使用以下命令上树parentNode

console.log(this.parentNode.parentNode);

MDN 文档

于 2013-07-22T14:27:01.097 回答
2

您需要使用this而不是e

alert(this.id);

在您的事件处理程序中。

演示在这里。

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

于 2013-07-22T14:27:15.743 回答