我正在尝试获取class = 4的子跨度。下面是一个示例元素:
<div id="test">
<span class="one"></span>
<span class="two"></span>
<span class="three"></span>
<span class="four"></span>
</div>
我可用的工具是JS和YUI2。我可以这样做:
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类,但我不确定该怎么做。
发布于 2012-08-29 04:10:26
使用doc.childNodes
遍历每个span
,然后过滤className
等于4
的那个
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;
}
}
发布于 2018-03-15 19:05:16
使用querySelector和querySelectorAll
var testContainer = document.querySelector('#test');
var fourChildNode = testContainer.querySelector('.four');
IE9和upper
发布于 2019-08-29 17:39:50
使用element.querySelector()。让我们假设:'myElement‘是你已经拥有的父元素。'sonClassName‘是你要找的孩子的班级。
let child = myElement.querySelector('.sonClassName');
如需更多信息,请访问:https://developer.mozilla.org/en-US/docs/Web/API/Element/querySelector。
https://stackoverflow.com/questions/12166753
复制相似问题