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

为什么同时改变两个,要点两次按钮才出效果呢?

function replaceMessage(){ var oldnode=document.getElementsByName("oldnode"); var xx=oldnode.length; var newnode=document.createElement("i");  for(var i=0 ;i<xx;i++){   newnode.innerHTML=oldnode[i].innerHTML;   oldnode[i].parentNode.replaceChild(newnode,oldnode[i]);}}     为什么同时改变两个,要点两次按钮才出效果呢?

正在回答

2 回答

当你点击第一次的时候,将第一个元素进行替换,此时获取的 oldnode.length 减1 ,第二个元素 xx[1] 现在变成了 xx[0],而现在 i ++ 后变为了1,所以后续的循环并没有对第二个元素进行操作。

到此次循环结束后,即第二次点击按钮,重新开始从xx[0]进行操作,第二个元素进行替换。

0 回复 有任何疑惑可以回复我~

这个是浏览器兼容问题,跟在前面9.8章中说有空白节点有关

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么同时改变两个,要点两次按钮才出效果呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信