关于js传参(数据类型)的问题,请高手帮助!
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
[color=#FF0000][/color]<BODY onload='isChecked(123,"ss")'>
<div id="content"></div>
</BODY>
</HTML>
<script language="javascript">
function isChecked(obj,name1){
var name=name1;
alert(name);
str="<input type='text' checked='checked' value='123' onblur ='isChecked1(this,"+name+")'/>你好"
document.getElementById("content").innerHTML=str;
}
function isChecked1(obj,name){
alert(name);
}
</script>
我就不明白为什么name1传值进来在第一个方法能够读出来,再传到第二个方法就不能打印,报没有定义的错误?然后在onload='isChecked(123,"123")'或onload='isChecked(123,123)'就能打印?请高手赐教,谢谢!
------解决方案--------------------字符串边上没加引号,处理为变量了,没有名为name的全局变量,所以报未定义
str="<input type='text' checked='checked' value='123' onblur ='isChecked1(this,\""+name+"\")'/>
这样就ok了
------解决方案--------------------字符串是要加单引号或双引号的,如果你已经了单引号或双引号,是需要转义的。像楼上的方式,你就可以用了。