如何检查div是否具有元素innerHTML

时间:2010-01-12 05:06:16

标签: javascript html

我有一个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)。 我怎么能这样做?

3 个答案:

答案 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