我需要将两个元素传递给onclick事件处理函数javascript而不仅仅是它们的id

时间:2012-07-16 15:35:11

标签: javascript javascript-events

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

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

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

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:3)

您可以使用parentNode property;

this.parentNode

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

this.parentNode.id

......你想要吗。

答案 1 :(得分:0)

从回调中的父级获取它:

function clickHandler(e){
    console.log(e.target.parentNode.id);
}

答案 2 :(得分:0)

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

onclick="doSomething(this);"

function doSomething(btn) {
   var div = btn.parentNode;
}