这段代码有什么问题?只有第一个循环实现了

这段代码有什么问题?只有第一个循环实现了

问题描述:

    <p id="t1">第一题您选择的是<strong><u id="ss"></u></strong></p>
    <ul id="choose1">
        <li id="a1">哈哈</li>
        <li id="a2">呵呵</li>
        <li id="a3">嘿嘿</li>
        <li id="a4">吼吼</li>
    </ul>
    <p id="t2">第二题您选择的是<strong><u id="cc"></u></strong></p>
    <ul id="choose2">
        <li id="b1">java</li>
        <li id="b2">ios</li>
        <li id="b3">Android</li>
        <li id="b4">php</li>
        <li id="b5">jquery</li>
    </ul>
    window.onload = function(){
    var aLi = document.getElementById('choose1').getElementsByTagName('li');
    var bLi = document.getElementById('choose2').getElementsByTagName('li');    
    for(var i = 0;i<=aLi.length;i++){
        aLi[i].onclick = function(){
            var aTxt = this.innerHTML;
            document.getElementById('ss').innerHTML = aTxt;
        }
    }
    for(var j = 0;j<=bLi.length;j++){
        bLi[j].onclick = function(){
            var bTxt = this.innerHTML;
            document.getElementById('cc').innerHTML = bTxt;
        }
    }   
    }

我想把两道题的选择结果都打印到响应的位置,但每次只能打印上第一题,把第一题注释掉,第二题才可以打印上,是逻辑上 有什么问题么?

 for(var i = 0;i<aLi.length;i++){//多了一个=号
        aLi[i].onclick = function(){
            var aTxt = this.innerHTML;
            document.getElementById('ss').innerHTML = aTxt;
        }
    }
    for(var j = 0;j<bLi.length;j++){//多了一个=号
        bLi[j].onclick = function(){
            var bTxt = this.innerHTML;
            document.getElementById('cc').innerHTML = bTxt;
        }
    }   
    }

是i<,不是i<=,你的第一个for下标越界报错导致第二个for没执行

 for (var i = 0; i < aLi.length; i++) {

  for(var j = 0;j<=bLi.length;j++){

代码的两个for循环中需要修改为 i< aLi.length j<bLi.length