【发布时间】:2013-06-07 14:28:38
【问题描述】:
我想在一个文本框中写一个值的总和。为此,我有这两部分代码:
HTML:
<label for="test1">Value(€)</label>
<input type="text" name="test1" id="test1" value="0"><br>
Javascript:
function selected_feature(event){
//set to 0
document.getElementById('test1').value = 0;
//Loop
for(var i=0; i<elements.selectedFeatures.length; i++) {
var elements;
elements += parseFloat(elements.selectedFeatures[i].attributes.value_elements);
document.getElementById('test1').value = elements;
}
}
结论:我在文本框中得到值“NaN”。我用'parsefloat'尝试了很多东西,但没有任何效果。如果我在函数末尾发出“警报(元素类型”),我会得到“数字”。 为什么文本框收到“NaN”?谁能帮助我?
谢谢
【问题讨论】:
-
这取决于 'selectedFeatures' 包含的内容。乍一看,我会说其中至少有一个不包含数字(所以 'parseFloat' 返回 NaN)。
-
如果不是数字,为什么我会在类型关闭的结果中得到一个数字?
-
我使用 typeof 查看变量类型,我总是得到“数字”:pastebin.com/7EUWA4Kv
-
因为 'elements' 是一个数字(NaN 是一个数字!)但是(一个或多个)'elements.selectedFeatures[i].attributes.value_elements' 的项目不是一个数字(那么'parseFloat' 返回 NaN,'elements' 将永远是 NaN)。
-
我认为访问子节点有问题,所以你得到 NaN(不是数字)你检查是否...... parseFloat(elements.selectedFeatures[i].attributes.value_elements) 正在返回一个数字.. ...但是除此之外,您的分配 (document.getElementById('test1').value = elements;) 应该在 for 循环之后..跨度>
标签: javascript html openlayers nan typeof