请各位老师看一下这个问题,为何第一种方法改变<span>的值不成功,而第二种可以?我是新手,先谢谢啦!html:<span id="showsecond">5</span>js:var number = document.getElementById('showsecond').innerHTML;
number = 3;//无效var number = document.getElementById('showsecond');
number.innerHTML = 3;//有效
2 回答
已采纳

迷途的马尔斯
TA贡献72条经验 获得超106个赞
这里涉及到了DOM操作和OOP了:
第一种写法,你通过getElementById().innerHTML来获取了span的属性,然后把span的属性值赋给了number变量,相当于你将var number = 5,你将number变量初始化了,然后你再对number操作也不会对span的属性产生任何的影响
第二种写法:你只是通过getElementById()来获得一个指向span的引用,这个时候number变量并没有初始化,而是指向了一个指向span的引用,然后你通过innerHTML的方法来改变引用的属性,间接地改变了span的属性了

狂飙的蜗牛_1
TA贡献96条经验 获得超43个赞
你的第一种方法就相当于这样:
var a=5;//这里用a来代替document.getElementById('showsecond').innerHTML; number=a; number=3;//结果是number变成了2,而不是a变成了2
添加回答
举报
0/150
提交
取消