这段代码有什么问题?只有第一个循环实现了
<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;
}
}
}
我想把两道题的选择结果都打印到响应的位置,但每次只能打印上第一题,把第一题注释掉,第二题才可以打印上,是逻辑上 有什么问题么?
- 学习ES6时let用于for循环时,函数里console的问题
- 在JavaScript中,return有什么作用?常用的使用方法有哪些?
- js 数组去重(单元素和对象数组)
- 都要2-3年工作经验,这可怎么破
- 为什么js对象的属性不能用this调用另一属性
- html5 浏览器通知notification点击跳转到已打开的标签页
- push()函数undefined
- angular中的$routeParams和$route.current.params $rootElement都是什么东西?
- 用js和php分别去掉表单首尾的空格和多余的换行怎么做?
- JS中的Function()函数对象
- nodemailer连接超时,怎么解决?
- 寄生构造函数里的一个疑问
- 关于 array reduce 函数怎么识别 匿名函数里面的参数
把<=
换成<
就正常了。length
获取的是数组长度,但是下标是从0
开始的,所以最后一个元素的下标是length-1
。因此是<
而不是<=
。
应该是下标越界报错了,然后后面的代码就被阻塞了,2个for循环中的<=改为<
代码有错。
for(var i = 0;i<=aLi.length;i++){
应该改成
for(var i = 0;i<aLi.length;i++){
bLi同理。
以后应该注意这些容易犯的错误~
啊,多了个 =