繁体   English   中英

如何在JavaScript中获取具有类名的确切父项?

[英]How to get the Exact Parent Item With Class Name In JavaScript?

<div class="wrapped">

  <table id="tabled">
    <tr>
        <td>abc</td>
        <td>def</td>
        <td><input type="checkbox" class="chkbox" id="val" onclick="myFunction(this.id)"></input></td>
    </tr>
    <tr>
        <td>abc</td>
        <td>def</td>
        <td><input type="checkbox" class="chkbox" id="val1" onclick="myFunction(this.id)"></input></td>
    </tr>

  </table>

</div>

我的一些代码会自动生成复选框的ID。 另外,DIV上有一个循环,其类名为“ wrapped”。 整个代码至少打印两次。 看起来像那样

<div class="wrapped">
  <table id="tabled">
    <tr>
        <td>abc</td>
        <td>def</td>
        <td><input type="checkbox" class="chkbox" id="val1" onclick="myFunction(this.id)"></input></td>
    </tr>
  </table>
</div>    

<div class="wrapped">
  <table id="tabled">
    <tr>
        <td>abc</td>
        <td>def</td>
        <td><input type="checkbox" class="chkbox" id="val2" onclick="myFunction(this.id)"></input></td>
    </tr>
  </table>
</div>

现在,我尝试添加一些JS来帮助我获得“包装”类的div。 这是我的js

function myFunction(el) {
    var el = document.getElementById(el);
    var r1 = el.closest(".wrapped");
    alert (r1.innerHTML);
}

它总是向我返回“包装”类的First div的HTML。 我想要的是,如果我单击ID为val2的复选框,它将返回第二个带有“包装”类的div。 但是,在我所有围绕网络的斗争中,我只获得所有选择的第一。 提前致谢

但这是正确的并返回所需的.wrapped div。

您也可以将.wrapped直接传递给函数:

 onclick="myFunction(this.closest('.wrapped'))"

和js:

function myFunction(wr) {
     alert (wr.innerHTML);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM