开发者

How to check if a div has element innerHTML

开发者 https://www.devze.com 2022-12-16 16:03 出处:网络
I have a div, which contains n 开发者_如何学JAVAnumber of child nodes. I have a for loop: for (iloop = 0; iloop < summaryDiv.childNodes.length; iloop++) {

I have a div, which contains n 开发者_如何学JAVAnumber of child nodes. I have a for loop:

for (iloop = 0; iloop < summaryDiv.childNodes.length; iloop++) {
    if (summaryDiv.childNodes[iloop].innerHTML.contains('display:block')) {
        flag = false;
    }
}

Here some of the child nodes don't contain the element innerHTML. I need to check if the child node contains innerHTML element, then I need to check for the style (display:block). How can I do this?


If you want to check the style of something, you do not need innerHTML. Instead, access the display value directly from the style element that is defined by default on DOM elements.

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;
    }
}


Use the display property directly:

for (var i = 0; i < summaryDiv.childNodes.length; i++) {
    if (summaryDiv.childNodes[i].style && summaryDiv.childNodes[i].style.display == 'block') {
        flag = false;
    }
}


You can check if the element has a property "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>

produces:

div: true
div.child: false
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号