我有这样的事情:
<li id="test">
<input type="text" name="firstname" />
</li>
<li id="test2">
<div id="special">
<input type="text" name="city" />
<input type="text" name="pc" />
</div>
</li>
当用户点击一个输入时,我希望获得li
个孩子的所有input
。例如,如果用户点击.pc
,我想同时返回#test
和#test2
。我不能使用jQuery或任何其他外部库。
答案 0 :(得分:0)
对于第二个(pc中的test2),您可以使用
$('#pc').closest('li');
获取li类型最近的父级。 (这将只返回test2)
如果你想要两者,你可以给他们一个独特的课程(或帮助他们挑选出来的东西),你可以使用
$('#pc').parents('li.myclass');
作为例子
编辑:这些也假设您只需要这两个测试。如果你想要所有的li,你可以使用
$('#pc').parents('li');
Edit2:如果无法使用JQuery,有人编写了一个处理此问题的方法here
答案 1 :(得分:0)
jQuery有一个原因......
您可以首先循环遍历document.getElementsByTagName('li')
,然后遍历孩子,寻找带有tagName === 'INPUT'
的元素,然后循环播放孩子们的孩子等。
或者从另一个方面检查所有输入中的父项,如此答案中所示 - &gt; How to check in Javascript if one element is contained within another