select
使用元素时似乎有些混乱。
确保您有正确的标记:
<select id="contServer">
<option value="0">Zero</option>
<option value="10">Ten</option>
<option value="100" selected>Hundred</option>
<option value="1000">Thousand</option>
</select>
我们将值存储在元素的value
属性中。option
如果该属性不存在,则将是位于开始标记和结束标记value
的文本。option
option
接下来,像上面这样的“整数”值实际上并不是整数——它们是字符串。因此,必须先对它们进行解析,然后才能将它们用于任何数学运算。在下面的简短演练中,我解释了获取选定值并将其解析为整数的过程。请仔细阅读它,我认为它会消除很多困惑:
// We now have a reference to the select object (with all of its object members)
var cServer = document.getElementById("contServer");
// Now we have a reference to all of the options within the select object
var options = cServer.options;
// Now a reference to the selected option
var selected = options[ cServer.selectedIndex ];
// And now the value of the selected option
var selValue = selected.value;
// Let's get the type of this value
var selType = typeof selValue;
// Convert this String to an Integer
var iSelType = parseInt( selType, 10 );
// We can also get the value from the select object itself
var cServerVal = cServer.value;
// But we would still need to parse it to an integer
var iCServerVal = parseInt( cServerVal, 10 );
我相信您的问题NaN
来自尝试解析非数值。例如,我们尝试将一个单词解析为一个整数:
parseInt( "Hundred" );
结果将是NaN
。这很可能是发生在你身上的事情。确保将您的号码存储在option
标签之间或value
每个option
标签的属性内。