如何在jQuery事件处理程序中获取父节点?

时间:2013-02-09 20:56:50

标签: jquery

考虑这段代码:

<div id="div1">
    <input type="radio" class="a" />
    <input type="radio" class="b"/>
    //....
    <input type="radio"  class="n" />
</div>
<div id="div2">
    <input type="radio" class="a" />
    <input type="radio" class="b"/>
    //....
    <input type="radio"  class="n" />
</div>

现在我想将委托事件处理程序绑定到那些单选按钮,如下所示:

$("div").on("change","input",myHandler);

function myHandler(e)
{
  alert($(this).prop("class"));
  alert($(e.currentTarget).prop("class"));  // same results...
}

我的问题是:我如何参考 div 或从MyHandler函数获取div Id (它不是通过使用:$(this),$( e.target),或$(e.currentTarget))那么如何引用 div

2 个答案:

答案 0 :(得分:3)

看看event.delegateTarget。它引用了您将处理程序附加到的DOM元素。所以抓住它的id属性:

function myHandler(e) {
  alert(e.delegateTarget.id);
}

Fiddle

答案 1 :(得分:1)

jQuery有一个.parent()函数:http://api.jquery.com/parent/

在您的事件处理程序中:

$(this).parent()