在查询DOM

时间:2017-10-31 07:17:59

标签: dom jquery-selectors selectors-api

使用querySelectorAll或任何DOM查询方法时,我想跳过给定子容器中的元素进行查询。

示例:

<div id="container-one">
    <div>
      <input type="text" name="first">
      <input type="text" name="second">

      <!-- skip below -->
      <div id="container-two">
        <input type="text" name="third">
        <input type="text" name="fourth">       
      </div>
    <div>
</div>

假设在上述情况下,如果您要从#container-one元素查询,则要跳过#container-two中的元素。因此,#container-one上的查询应仅返回 [first, second] 元素并跳过其他元素(第三,第四)。

感谢任何输入。

1 个答案:

答案 0 :(得分:1)

试试这个:

document.querySelectorAll('div.container-one')[0].querySelectorAll(':scope > input')

更新(你不能使用querySelectorAll):

inputs = document.getElementsByTagName("input");
input_two = document.getElementById('container-two').getElementsByTagName('input');

var input_cont_two_name_array = [];
for(j=0;j<input_two.length;j++){
    input_cont_two_name_array.push(input_two[j].name);
}

for(i=0;i<inputs.length;i++){
    input_name_id = inputs[i].name;
    if(input_cont_two_name_array.indexOf(input_name_id) == -1){
      //do your stuff
    }
}