在JavaScript中的setattribute函数中使用变量
Using variable in setattribute function in JavaScript
显示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>
+c
将+
放在值之前将尝试将其强制转换为数字。你没有传递数字。你实际上看到的是NaN
。
从变量后面删除+
。
document.getElementById("ct").setAttribute('value',+c);
成为
document.getElementById("ct").setAttribute('value',c);
从+c
中删除一元加号
document.getElementById("ct").setAttribute('value',+c);
您正试图将强制转换字符串(它不代表数字)键入为前缀为+
的数值,因此看到NaN
(不是数字),它应该是:
document.getElementById("ct").setAttribute('value',c);
+
是一个一元运算符,用于类型转换为数值。
请参阅Unary Plus操作员
一元加号运算符位于其操作数之前,并计算为其操作数,但如果尚未转换为数字,则尝试将其转换为数字。例如,y=+x取x的值,并将其赋值给y;也就是说,如果x是3,y将得到值3,x将保留值3;但如果x是字符串"3",y也会得到值3。尽管一元否定(-)也可以转换非数字,但一元加是将某物转换为数字的最快也是首选的方法,因为它不会对数字执行任何其他操作。它可以转换整数和浮点的字符串表示,以及非字符串值true、false和null。支持十进制和十六进制(前缀为"0x")格式的整数。支持负数(但不支持十六进制)。如果它不能解析一个特定的值,它将计算为NaN。
Fiddle
试试这个,
function submitcity(c){
document.getElementById("ct").setAttribute('value',c);//remove + sign before c
//document.cityform.submit();
alert(c);
}
相关文章:
- 带有两个变量函数的Ajax提交表单
- 设置变量函数不起作用
- 为什么使用 ||在变量函数声明中
- Javascript 变量函数不保留值
- 为什么要在函数定义之外引用静态变量(函数属性)
- jQuery 变量函数无法运行
- 循环中的变量函数定义
- javascript onclick设置为变量函数名
- JavaScript:调用已启动类(数据包处理程序)的变量函数
- Javascript测试存根全局变量函数
- Aptana能否识别其他文件中定义的变量/函数
- jquery将其传递给变量函数
- 传递一个变量函数到数组[Javascript]
- 如何使用' this '像一个对象,并通过字符串获得它的变量/函数
- javascript变量/函数的首字母是什么意思?
- Javascript .apply带有变量函数名
- 在JavaScript中添加一个全局变量/函数(特别是NativeScript)
- 变量函数未定义错误
- AngularJS-继续检查变量/函数
- Javascript从本地向全局变量函数添加行