请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

console.log('length----', list.length)

console.log(‘length----’, list.length) 为啥会输出2啊,执行到这里的时候不是还没渲染吗

正在回答 回答被采纳积分+3

1回答

双越 2022-05-03 18:06:17

把完整代码贴出来吧。

0 回复 有任何疑惑可以回复我~
  • 提问者 倾城一笑stu #1
    const p = document.createElement('p')
            p.innerHTML = 'new paragraph'
            document.body.appendChild(p)
            const list = document.getElementsByTagName('p')
            console.log('length----', list.length)
    
            console.log('start')
            // 渲染之后
            setTimeout(() => {
                const list = document.getElementsByTagName('p')
                console.log('length on timeout----', list.length) // 2
                alert('阻塞 timeout')
            })
            // 渲染之前
            Promise.resolve().then(() => {
                const list = document.getElementsByTagName('p')
                console.log('length on promise.then----', list.length) // 2
                alert('阻塞 promise')
            })
            console.log('end')
    回复 有任何疑惑可以回复我~ 2022-05-04 11:32:56
  • 双越 回复 提问者 倾城一笑stu #2
    你说的  console.log('length----', list.length) 是在同步代码中的,虽然此时可能还没有显示再页面上,但 JS 已经执行,DOM 结构已经创建了。
    回复 有任何疑惑可以回复我~ 2022-05-04 19:17:03
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

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

帮助反馈 APP下载

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

公众号

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