在javascript中使用setattribute函数中的变量

时间:2013-07-10 15:30:06

标签: php javascript jquery html javascript-events

显示NoN而不是城市名称。我试过以下代码 -

<script type="text/javascript"  language="javascript" >
function submitcity(c){
document.getElementById("ct").setAttribute('value',+c);//displaying NoN
//document.cityform.submit();
alert(c);
}</script>

在身体

<img src="images/reset.jpg" width="80" height="24" onclick="submitcity('bhopal');" />
<form  action="" method="post" name="cityform" style="display:none;">
<input type="hidden" name="city" id="ct" value="" /></form>

3 个答案:

答案 0 :(得分:5)

+c

在值之前放置+将尝试将其强制转换为数字。你没有传递号码。你看到的是NaN

从变量后面删除+

document.getElementById("ct").setAttribute('value',+c);

变为

document.getElementById("ct").setAttribute('value',c);

答案 1 :(得分:3)

+c

中删除一元加号

document.getElementById("ct").setAttribute('value',+c);

您正在尝试将强制转换字符串(不代表数字)键入数字值,前缀为+,因此看到NaN(非数字),它应该是:

document.getElementById("ct").setAttribute('value',c);

+是一个一元运算符,用于将类型转换为数值。

参见 Unary Plus operator

  

一元加运算符在其操作数之前,并计算其操作数,但尝试将其转换为数字(如果尚未)。例如,y = + x取x的值并将其赋给y;也就是说,如果x为3,y将得到值3,x将保留值3;但如果x是字符串“3”,y也会得到值3.尽管一元否定( - )也可以转换非数字,但是一元加号是将某些东西转换为数字的最快和最优选的方法,因为它不是对号码执行任何其他操作。它可以转换整数和浮点数的字符串表示形式,以及非字符串值true,false和null。支持十进制和十六进制(“0x” - 前缀)格式的整数。支持负数(但不支持十六进制)。如果它无法解析特定值,它将评估为NaN。

<强> Fiddle

答案 2 :(得分:1)

试试这个,

function submitcity(c){
   document.getElementById("ct").setAttribute('value',c);//remove + sign before c
   //document.cityform.submit();
   alert(c);
}