JS用特定的类选择这个孩子

时间:2014-01-03 01:34:33

标签: javascript

我正在编写一个GreaseMonkey脚本,该脚本遍历包含各种元素的页面,每个元素都有文本和按钮。它使用document.getElementsByClassName来查找父元素,并且它有一个for循环来对每个父元素执行某些操作。在这个循环中,我需要选择一个具有特定类的子节点并找到它的文本值(innerHTML)。我无法弄清楚如何选择具有此元素的特定类的子项。

3 个答案:

答案 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();