1

假设我的代码中有 2 个元素,并且我想将它们各自的 id 传递给事件处理函数。(在下面的示例中,我有一个 div 和一个按钮)

<div id="div1">
  <input type="button" id="button1" onclick="doSomething(this, [here comes id of div])" />
</div>

对于按钮,我没有编写“button1”的id,而是使用“this”关键字简单地传递了元素本身。现在我的问题是,有没有一种方法可以让我在函数中传递 div 元素本身,而不仅仅是它的 id,就像我对 button 元素所做的那样?

任何帮助将不胜感激。

4

3 回答 3

3

您可以使用该parentNode属性

this.parentNode

由于这返回一个DOMElement(类似于this),您可以通过相同的方式访问 ID;

this.parentNode.id

...如果你想。

于 2012-07-16T15:38:44.190 回答
0

只需在回调中从父级获取它:

function clickHandler(e){
    console.log(e.target.parentNode.id);
}
于 2012-07-16T15:38:11.010 回答
0

为什么你首先需要通过它?通过 访问 div parentNode

onclick="doSomething(this);"

function doSomething(btn) {
   var div = btn.parentNode;
}
于 2012-07-16T15:38:27.560 回答