首页 新闻 会员 周边 捐助

JS img src问题

0
悬赏园豆:20 [已解决问题] 解决于 2015-07-29 14:08
1 var str = "https://github.com/baidu-ife/ife/blob/master/2015_summer/asset/jiandao.jpg?raw=true";
2 $("jiandao").onclick = function(){
3     $("MyChoice").src = str;
4 }

为什么这个代码不能用?src里面内容老是错误,改成

$("MyChoice").src =
"https://github.com/baidu-ife/ife/blob/master/2015_summer/asset/jiandao.jpg?raw=true";却可以?
TinDin的主页 TinDin | 初学一级 | 园豆:126
提问于:2015-07-20 10:34
< >
分享
最佳答案
0

你这个属于JS作用域问题,

1 var str = "https://github.com/baidu-ife/ife/blob/master/2015_summer/asset/jiandao.jpg?raw=true";
2 $("jiandao").onclick = function(){
      var str ;
3     $("MyChoice").src = str;
4 }

 改成这样就好用了,关于JS变量作用域的问题,网上有很多,这里就不细讲了。

收获园豆:20
Echo.Liu | 菜鸟二级 |园豆:385 | 2015-07-20 11:13

可是新定义了个局部变量str,它里面不是没东西了吗?

TinDin | 园豆:126 (初学一级) | 2015-07-20 12:24

@TinDin: 这个和C# JAVA的全局变量和局部变量有区别的,他们是块级的作用域,JS则是函数作用域,去看看JS作用域的相关知识吧,不是很好理解,但相信你会明白。

Echo.Liu | 园豆:385 (菜鸟二级) | 2015-07-20 13:37

@TinDin: 

1  $("jiandao").onclick = function(){
2      var str = "https://github.com/baidu-ife/ife/blob/master/2015_summer/asset/jiandao.jpg?raw=true";     
3 $("MyChoice").src = str;
4 }

这样str 的值就可以用了,你最开始的写法,输出是undefined的。

Echo.Liu | 园豆:385 (菜鸟二级) | 2015-07-20 13:43
其他回答(3)
1

选择器是不是有问题?

通过id选择是:
$("#MyChoice").attr("src","xxx");

或者:

document.getElementById("MyChoice").src="xxx";

或者先用jQuery找,再转dom对象:

$("#MyChoice").get(0).src ="xxx";

上位者的怜悯 | 园豆:172 (初学一级) | 2015-07-20 10:48
0

很明显是你jquery用错啦,试试1楼。

Ants | 园豆:208 (菜鸟二级) | 2015-07-20 16:25

压根没用jquery~

支持(0) 反对(0) TinDin | 园豆:126 (初学一级) | 2015-07-26 22:12
0

str被其实地方覆写了,改一下变量名试一下

木龙哥 | 园豆:144 (初学一级) | 2015-07-26 20:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册