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

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

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

阿绅 2015-12-30 22:09:49
请各位老师看一下这个问题,为何第一种方法改变<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的属性了

查看完整回答
反对 回复 2015-12-30
?
狂飙的蜗牛_1

TA贡献96条经验 获得超43个赞

你的第一种方法就相当于这样:

var a=5;//这里用a来代替document.getElementById('showsecond').innerHTML;
number=a;
number=3;//结果是number变成了2,而不是a变成了2


查看完整回答
反对 回复 2015-12-30
  • 2 回答
  • 0 关注
  • 1320 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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