从querySelectorAll获取节点列表后,如何使用querySelector匹配特定的id

时间:2017-02-21 04:51:28

标签: javascript

我最初使用querySelectorAll属性来获取某些标记的节点列表,然后从这个节点列表中我使用querySelector遍历每个节点寻找与id属性的特定匹配,但结果始终为null。

var x=document.body.querySelectorAll("script");
for(var i=0;i<x.length;++i)
{  

  var y=x[i].querySelector("#myid");   
  console.log(y);
  if(y!== null)
  {
    console.log(i+1);
  }
}

我总是得到null的输出,请帮助。

2 个答案:

答案 0 :(得分:0)

Krishna您的querySelectorAll将为您获取节点列表。您没有理由在循环中添加其他查询选择器。

var myId = document.querySelector('#myid');
var collection = document.body.querySelectorAll("script");
  for (var i = 0; i < collection.length; i++) {  
    if (collection[i].includes(myId)) {
      console.log(i+1);
    }
  }

答案 1 :(得分:0)

如果您想选择script属性等于name的{​​{1}}代码,请使用此代码:

myName

您可以放置​​尽可能多的CSS选择器来缩小搜索范围。

例如,如果您希望选择var elems = document.querySelectorAll('script[name = "myName"]'); 元素作为div元素的直接子元素,并且属性liname开头且具有"abc" {1}}和id class然后使用此:

someClass

以下是所有CSS Selectors的链接!