gpt4 book ai didi

jQuery 无法使用 .closest() 来搜索 DOM 树

转载 作者:行者123 更新时间:2023-12-03 22:31:25 26 4
gpt4 key购买 nike

http://jsfiddle.net/3Bvt9/3/

HTML

<div id="div1">
<img class="size" src="">
<input name="rdo" id="rdo" type="radio" value="1">
<div id="div2">
<label>radiobutton</label>
<div id="div3">
<a href="javascript:void(0)">link</a>
<input name="abc" id="abc" type="hidden" value="1">
</div>
</div>
</div>

jquery

$('#abc').parent().parent().parent().find("input[type='radio']").length; //1
$('#abc').closest("input[type='radio']").length; //0 why?

为什么最接近的查询不起作用?我认为closest()会向上遍历DOM树中的祖先。

最佳答案

这是因为input[type="radio"]不是 #abc 的父级,而是祖 parent 元素的兄弟元素。

此外,according to w3c , <input>元素不能有子元素,与 <button> 不同,即它不会“环绕”#abc .

第一种方法有效,因为 $('#abc').parent().parent().parent()指向顶部<div> ;做.find("input[type='radio']")就可以找到单选按钮作为其子元素。

这也可以:

$('#abc').parent().parent().siblings('input[type="radio"]).length; // 1

关于jQuery 无法使用 .closest() 来搜索 DOM 树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16705266/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com