求大神解答



    
    




    html
    php
    javascript
    jquery
    java



    () {
        =.();
        = .;
        (= ; < .; ++){
            = [];
            .();
        }

    }


()

为什么两个for循环执行的结果不一样?

皓韵儿
浏览 1364回答 3
3回答

stone310

for(var i=content.childNodes.length-1;i>=0;i--){ 先说说这种写法发生了什么,当你点击触发,i的值是content.childNodes.length-1,条件是只要i>=0,就可以执行语句,因此这里i能执行到i=0;因此这种写法下点击按钮所有节点全部删除第二种写法:for(var i = 0; i < content.childNodes.length; ++i){点击触发,i开始是0,条件是i要小于元素节点的个数,就是这里发生了问题,i=0;length=11,执行语句删除节点,继续i=1;length=10,执行语句删除节点,继续i=2;length=9,执行语句删除节点,继续i=3;length=8,执行语句删除节点,继续i=4;length=7,执行语句删除节点,继续i=5;length=6,执行语句删除节点,继续i=6;length=5,条件不满足,停止!再次点击,i=0 ; length=5............因此执行效果是不同的

皓韵儿

这是代码。。<!DOCTYPE HTML><html><head>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">    <title>无标题文档</title></head><body><div id="content">    <h1>html</h1>    <h1>php</h1>    <h1>javascript</h1>    <h1>jquery</h1>    <h1>java</h1></div><script type="text/javascript">    function clearText() {        var content=document.getElementById("content");        // 在此完成该函数        //for(var i=content.childNodes.length-1;i>=0;i--){            for(var i = 0; i < content.childNodes.length; ++i){            var childNode = content.childNodes[i];            content.removeChild(childNode);        }    }</script><button onclick="clearText()">清除节点内容</button></body></html>

摩诃迦叶

?你这是什么?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript