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";却可以?
你这个属于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变量作用域的问题,网上有很多,这里就不细讲了。
可是新定义了个局部变量str,它里面不是没东西了吗?
@TinDin: 这个和C# JAVA的全局变量和局部变量有区别的,他们是块级的作用域,JS则是函数作用域,去看看JS作用域的相关知识吧,不是很好理解,但相信你会明白。
@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的。
选择器是不是有问题?
通过id选择是:
$("#MyChoice").attr("src","xxx");
或者:
document.getElementById("MyChoice").src="xxx";
或者先用jQuery找,再转dom对象:
$("#MyChoice").get(0).src ="xxx";
很明显是你jquery用错啦,试试1楼。
压根没用jquery~
str被其实地方覆写了,改一下变量名试一下