没有jQuery,Javascript获得类似的元素

时间:2014-04-30 19:17:45

标签: javascript

我有这样的事情:

<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或任何其他外部库。

2 个答案:

答案 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