请问一下JS中赋值时出现的问题~

请各位老师看一下这个问题,为何第一种方法改变<span>的值不成功,而第二种可以?我是新手,先谢谢啦!

html:

<span id="showsecond">5</span>

js:

var number = document.getElementById('showsecond').innerHTML;
number = 3;//无效
var number = document.getElementById('showsecond');
number.innerHTML = 3;//有效
阿绅
浏览 1321回答 2
2回答

迷途的马尔斯

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

狂飙的蜗牛_1

你的第一种方法就相当于这样:var a=5;//这里用a来代替document.getElementById('showsecond').innerHTML; number=a; number=3;//结果是number变成了2,而不是a变成了2
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript