Javascript 如何在节点中获取节点
假设我有一个名为Javascript 如何在节点中获取节点,javascript,google-chrome-devtools,Javascript,Google Chrome Devtools,假设我有一个名为myNode的变量: myNode=document.getElementsByTagName('li')[0]; 下面是myNode.outerHTML的外观: 我的部门 我的标题 我需要访问以开头的div,但由于这个div没有ID。我想我需要遍历myNode元素来找到它并单击它 所以我试了一下: for(var i=0;i如果使用,可以通过属性选择元素 document.querySelector('li div[aria disabled=“false”]”) 如
myNode
的变量:
myNode=document.getElementsByTagName('li')[0];
下面是myNode.outerHTML的外观:
我的部门
我的标题
我需要访问以
开头的div,但由于这个div没有ID。我想我需要遍历myNode
元素来找到它并单击它
所以我试了一下:
for(var i=0;i如果使用,可以通过属性选择元素
document.querySelector('li div[aria disabled=“false”]”)
如果类不会更改,则可以增加选择器的值。如果myNode
是li
(列表项)的列表,则可以从该节点在所需索引处进行查询
myNode[i].查询选择器('.\u 4ofi.\u 4ofr div[aria disabled=“false”]”)
此外,您可以迭代结果集以提高可读性
myNodes.forEach(node=>myNode.querySelector('div[aria disabled=“false”]);
其中myNodes
是li
元素的集合。如果使用,可以通过属性选择元素
document.querySelector('li div[aria disabled=“false”]”)
如果类不会更改,则可以增加选择器的值。如果myNode
是li
(列表项)的列表,则可以从该节点在所需索引处进行查询
myNode[i].查询选择器('.\u 4ofi.\u 4ofr div[aria disabled=“false”]”)
此外,您可以迭代结果集以提高可读性
myNodes.forEach(node=>myNode.querySelector('div[aria disabled=“false”]);
其中myNodes
是li
元素的集合。我假设您无法修改DOM。否则,只需为要访问的元素设置一个id,然后使用
document.getElementById('myId')
如果无法触摸DOM:
myNode.length
返回undefined
,因为返回值不是数组。它是一个对象。您可以通过调用
myNode.childNodes
- 对于具有“aria检查”的特定节点,您可以通过以下方式直接访问:
document.getElementsByTagName('li')[0].childNodes[1].childNodes[3].childNodes[1]
我不知道为什么有人想用这种方式访问节点,但你可以这样做。我假设你不能修改DOM。否则,只需为你想访问的元素设置一个id,然后使用
document.getElementById('myId')
var myNode = document.getElementsByTagName('li');
for (var i=0;i<myNode.length;i++) {
console.log(myNode[i].querySelector('._4ofr div[aria-disabled="false"]'));
};
如果无法触摸DOM:
myNode.length
返回undefined
,因为返回值不是数组。它是一个对象。您可以通过调用
myNode.childNodes
- 对于具有“aria检查”的特定节点,您可以通过以下方式直接访问:
document.getElementsByTagName('li')[0].childNodes[1].childNodes[3].childNodes[1]
不确定为什么有人希望以这种方式访问节点,但这就是问题所在。var myNode=document.getElementsByTagName('li');
var myNode = document.getElementsByTagName('li');
for (var i=0;i<myNode.length;i++) {
console.log(myNode[i].querySelector('._4ofr div[aria-disabled="false"]'));
};
对于(var i=0;ivar myNode=document.getElementsByTagName('li');
对于(var i=0;iYes但当我已经有myNode变量时,我如何在其中搜索而不是在所有文档中搜索?@delphirules您可以从文档中的任何元素开始。是的,但当我已经有myNode变量时,我如何在其中搜索而不是在所有文档中搜索?@delphirules您可以从文档中的任何元素开始搜索。谢谢,这是关闭,但在本例中,我现在知道childNodes是什么。如果我不知道,我如何在myNode中的所有子节点中进行迭代?@delphirules您可以迭代通过childNodes
返回的值。它是一个NodeList
,因此就像一个数组一样,您可以对它进行迭代,并使用.length
请求其大小,谢谢,这很接近,但在本例中,我现在知道childNodes将是什么。如果我不知道,我如何在myNode中的所有子节点中进行迭代?@delphirules您可以迭代通过childNodes
返回的值。它是一个节点列表
,因此就像一个数组一样,您可以对其进行迭代,并使用.length
请求其大小>