日期:2014-05-16  浏览次数:20418 次

关于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了
------解决方案--------------------
字符串是要加单引号或双引号的,如果你已经了单引号或双引号,是需要转义的。像楼上的方式,你就可以用了。