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

Using variable in setattribute function in JavaScript

本文关键字:变量 函数 JavaScript 中的 setattribute      更新时间:2023-09-26

显示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);
}