为了账号安全,请及时绑定邮箱和手机立即绑定

数组值在 DOM 中没有变化,但在 console.log 中显示正确

数组值在 DOM 中没有变化,但在 console.log 中显示正确

largeQ 2022-07-08 17:37:16
我有一个进入 DOM 列表的数字数组。当我使用某种数组方法修改数组值时,我无法在浏览器中呈现它。但在 console.log 或警报中正确显示。https://jsfiddle.net/0h672ruz/10/<form action="">        <input type="radio" name="radio" id="radioBtn1" class="radio">        <input type="radio" name="radio" id="radioBtn2" class="radio">    </form><ul>    <li></li>    <li></li>    <li></li></ul>let radioBtns = document.querySelectorAll(".radio");let lists = document.querySelectorAll("li");let numsArr = [11, 22, 33];     for (let j = 0; j < radioBtns.length; j++) {    radioBtns[j].addEventListener('click', function(){      if(radioBtns[0].checked){        changeArr();        alert(numsArr);        }   })}//modify numsArrfunction changeArr(){numsArr.splice(0, 1, 44)}for (let i = 0; i < lists.length; i++) {    lists[i].innerHTML = numsArr[i]; }```
查看完整描述

1 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

作为回调的一部分,您不会更新 DOM。


将此移动到您的回调中:


for (let i = 0; i < lists.length; i++) {

    lists[i].innerHTML = numsArr[i]; 

}

你应该最终得到这样的东西


radioBtns[j].addEventListener('click', function(){

 if(radioBtns[0].checked){

   changeArr();

   for (let i = 0; i < lists.length; i++) {

    lists[i].innerHTML = numsArr[i]; 

   }

   alert(numsArr);

 } 

})

将代码移动到函数中并调用它会更好。


查看完整回答
反对 回复 2022-07-08
  • 1 回答
  • 0 关注
  • 93 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号