开发者

javascript appending in a for loop not working but alering is

开发者 https://www.devze.com 2023-01-03 22:52 出处:网络
I am trying to append to a string in a for loop.I can alert each value bieng looped but i cant append for some reason:

I am trying to append to a string in a for loop. I can alert each value bieng looped but i cant append for some reason:

<html>
    <head>
        <script type="text/javascript" language="javascript">
            function doIt(){
                    var styleSheet = document.styleSheets[0];
                    var css="";
                    for (i=0; i<=styleSheet.cssRules.length; i++)
                    {
                        css += styleSheet.cssRules开发者_运维技巧[i].cssText;
                        //alert(styleSheet.cssRules[i].cssText); //WORKS
                    }
            }
        </script>
        <style type="text/css">
            .container{display:none;}
            .markup-container{color:#404040;}
            .title{text:decoration:underline;}
            .body{color:#000;}
        </style>
    </head>
    <body>
        <input type="button" id="button" onmousedown="doIt()">
        <div class="container">
            <div class="markup-container">
                <div class="title">This is a title with some markup</div>
                <div class="body">This is the body with some markup and it's longer ^^</div>
            </div>
        </div>
    </body>
</html>


Your for loop is off by one :)

for (i=0; i<=styleSheet.cssRules.length; i++)
//should be:
for (i=0; i<styleSheet.cssRules.length; i++)

When this happens at the end:

styleSheet.cssRules[styleSheet.cssRules.length].cssText

You'll get an error, because you're one past the length of the array, and styleSheet.cssRules[i] is undefined, resulting in an error when you try to access the .cssText property on it.

0

精彩评论

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