首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何通过类名获取子元素?

如何通过类名获取子元素?
EN

Stack Overflow用户
提问于 2012-08-29 04:05:51
回答 16查看 454.4K关注 0票数 196

我正在尝试获取class = 4的子跨度。下面是一个示例元素:

代码语言:javascript
复制
<div id="test">
 <span class="one"></span>
 <span class="two"></span>
 <span class="three"></span>
 <span class="four"></span>
</div>

我可用的工具是JS和YUI2。我可以这样做:

代码语言:javascript
复制
doc = document.getElementById('test');
notes = doc.getElementsByClassName('four');

//or

doc = YAHOO.util.Dom.get('#test');
notes = doc.getElementsByClassName('four');

这些在IE中不起作用。我得到一个错误,对象(文档)不支持这个方法或属性(getElementsByClassName)。我已经尝试了一些跨浏览器实现getElementsByClassName的示例,但我无法让它们正常工作,仍然得到了那个错误。

我想我需要的是一个跨浏览器的getElementsByClassName,或者我需要使用doc.getElementsByTagName('span')遍历直到我找到4类,但我不确定该怎么做。

EN

回答 16

Stack Overflow用户

回答已采纳

发布于 2012-08-29 04:10:26

使用doc.childNodes遍历每个span,然后过滤className等于4的那个

代码语言:javascript
复制
var doc = document.getElementById("test");
var notes = null;
for (var i = 0; i < doc.childNodes.length; i++) {
    if (doc.childNodes[i].className == "4") {
      notes = doc.childNodes[i];
      break;
    }        
}

票数 114
EN

Stack Overflow用户

发布于 2018-03-15 19:05:16

使用querySelector和querySelectorAll

代码语言:javascript
复制
var testContainer = document.querySelector('#test');
var fourChildNode = testContainer.querySelector('.four');

IE9和upper

票数 241
EN

Stack Overflow用户

发布于 2019-08-29 17:39:50

使用element.querySelector()。让我们假设:'myElement‘是你已经拥有的父元素。'sonClassName‘是你要找的孩子的班级。

代码语言:javascript
复制
let child = myElement.querySelector('.sonClassName');

如需更多信息,请访问:https://developer.mozilla.org/en-US/docs/Web/API/Element/querySelector

票数 27
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12166753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档