我有一个div,它包含n个子节点。 我有一个for循环:
for (iloop = 0; iloop < summaryDiv.childNodes.length; iloop++) {
if (summaryDiv.childNodes[iloop].innerHTML.contains('display:block')) {
flag = false;
}
}
这里有些子节点不包含innerHTML元素。我需要检查子节点是否包含innerHTML元素,然后我需要检查样式(display:block)。 我怎么能这样做?
答案 0 :(得分:5)
如果要查看某些内容的样式,则不需要innerHTML
。而是直接从DOM元素上默认定义的display
元素访问style
值。
var children = summaryDiv.childNodes; // Avoid excessive scope chain walking (faster!)
for ( var i=0, l=children.length; i<l; i++ ) {
if ( children[i].style && children[i].style.display == "block" ) {
flag = false;
}
}
答案 1 :(得分:1)
直接使用display属性:
for (var i = 0; i < summaryDiv.childNodes.length; i++) {
if (summaryDiv.childNodes[i].style && summaryDiv.childNodes[i].style.display == 'block') {
flag = false;
}
}
答案 2 :(得分:0)
您可以检查元素是否具有“innerHTML”属性。
<html>
<body>
<div id="div">hello</div>
<script type="text/javascript">
document.write("div: " + ("innerHTML" in document.getElementById("div")));
document.write("<br />");
document.write("div.child: " + ("innerHTML" in document.getElementById("div").firstChild));
</script>
</body>
</html>
产生
div: true
div.child: false