我正在编写一个GreaseMonkey脚本,该脚本遍历包含各种元素的页面,每个元素都有文本和按钮。它使用document.getElementsByClassName
来查找父元素,并且它有一个for循环来对每个父元素执行某些操作。在这个循环中,我需要选择一个具有特定类的子节点并找到它的文本值(innerHTML
)。我无法弄清楚如何选择具有此元素的特定类的子项。
答案 0 :(得分:2)
您需要抓取当前迭代的元素并使用querySelector()
例如:
var elements = document.getElementsByClassName('class');
for (var i = 0, len = elements.length; i < len; i++) {
var child = elements[i].querySelector('.class_of_desired_element');
//do stuff with child
}
请注意querySelector
中类名之前的点,因为它与jQuery类似。
答案 1 :(得分:1)
尝试querySelectorAll()
,您可以使用它来查找当前元素中的元素。
var parent = document.getElementsByClassName('parentClass'),
parent[0].querySelectorAll('.childClass');
如果您没有明确需要引用它,您可以跳过选择父项的具体操作,具体取决于您要查看的内容。
document.querySelectorAll('.parentClass .childClass');
https://developer.mozilla.org/en-US/docs/Web/API/Element.querySelectorAll
答案 2 :(得分:0)
您可以使用
var yourelement = document.getElementsByClass("");
var i = yourelement.nextSibling;
var e = i.nextSibling;
并继续获取元素的nextSibling
直到你得到它。
然而,就像@teddy在评论中所说,我建议你使用jQuery。它有一个更简单的方法:
var value = $('.parentClass .childClass').html();