能否在HTMLElement中查找特定类?嵌套使用getElementsByClassName可行吗?
问题解答
可以的。当你通过document.getElementsByClassName("class_1")拿到HTMLCollection后,取出的第一个元素是DOM元素节点,这类节点本身就继承了getElementsByClassName()方法,调用它时会在该元素的内部(即其子树范围内)查找所有带有指定类名的元素,返回对应的二级HTMLCollection。
举个简单的代码示例:
// 获取所有class_1元素的集合 const class1Elements = document.getElementsByClassName("class_1"); // 取出第一个class_1元素(需确保集合不为空) if (class1Elements.length > 0) { const firstClass1Element = class1Elements[0]; // 在该元素内部查找所有class_2元素 const class2Elements = firstClass1Element.getElementsByClassName("class_2"); // 可以正常操作这个二级集合 console.log(class2Elements.length); }
需要注意的是,HTMLCollection是动态集合,文档结构变化时会自动更新,但这里的二级集合是基于父元素的子树,只会受该子树内的DOM变化影响。
内容的提问来源于stack exchange,提问作者Connor
相关产品推荐
相关产品推荐

