ホームページ  >  に質問  >  本文

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

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

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

PHP中文网PHP中文网2749日前236

全員に返信(4)返信します

  • 黄舟

    黄舟2017-04-10 15:11:45

    <=换成<就正常了。
    length获取的是数组长度,但是下标是从0开始的,所以最后一个元素的下标是length-1。因此是<而不是<=

    返事
    0
  • 巴扎黑

    巴扎黑2017-04-10 15:11:45

    应该是下标越界报错了,然后后面的代码就被阻塞了,2个for循环中的<=改为<

    返事
    0
  • 阿神

    阿神2017-04-10 15:11:45

    代码有错。

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

    应该改成

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

    bLi同理。
    以后应该注意这些容易犯的错误~

    返事
    0
  • 迷茫

    迷茫2017-04-10 15:11:45

    啊,多了个 =

    返事
    0
  • キャンセル返事