【发布时间】:2019-06-10 14:28:37
【问题描述】:
看看这个例子:
<div id="root" class="box">
<div class="box">
<input letter="A"></input>
<input letter="B"></input>
</div>
<div id="subroot" class="box">
<div class="useless_class">
<input letter="B"></input>
<div class="useless_class">
<input letter="D"></input>
</div>
<div class="box">
<input letter="F"></input>
</div>
</div>
</div>
<input letter="E"></input>
</div>
我需要一个 jQuery 选择器来获得不具有 .box 类的祖先元素的输入。
这是想要的结果:
input:
searchInputsInElement($("#root"))
output:
<input letter="E"></input>
input:
searchInputsInElement($("#subroot"))
output:
<input letter="B"></input>
<input letter="D"></input>
最终目标是递归调用theSuperFunction。
################################################# #############################
# 解决了 ################################################ ######################
################################################# #############################
感谢@Shubanker,我制作了this 最终代码(看看console.log 结果)。
【问题讨论】:
-
#root.box > input和#subroot.box input..>表示直接孩子 -
@Mohamed-Yousef 您指定的第二个选择器不会匹配任何元素,因为没有
input元素是#subroot的直接后代。 -
@Mohamed-Yousef,谢谢,但我需要它与目标和根之间的无限 dom 一起工作。我不会为每种可能性做
#root.box > .abc > .dev > .mdr > ... > input:/ -
@BenM 是的,我从第二个选择器中删除了
>.. 谢谢 -
@Mohamed-Yousef,请看我的编辑,在你的例子中,第二个也会返回 F 输入。