为什么未定义typeof(text.value [len])但typeof(len)是数字
var text=document.getElementById('inputEmail');
var len=text.value.length;
document.getElementById('demo').innerHTML=typeof(text.value[len]);
答案 0 :(得分:0)
那是因为数组位置从0开始。
[0, 1, 2, 3, ... ]
在您的情况下,您要获取数组的长度(假设为10),并尝试将元素放置在位置10。但是,由于数组索引从0开始,因此数组中没有索引10。它从0到9。
您需要做的是获取长度-1。
var text=document.getElementById('inputEmail');
var len=text.value.length;
document.getElementById('demo').innerHTML=typeof(text.value[len - 1]);
应用此更正将使您的string
为typeof(text.value[len - 1])
的值。这是因为dom元素(value
)的getElementById
属性将始终是字符串。字符串的一部分也是字符串。如果需要数字,可以使用parseInt
函数将字符串解析为数字。
var text=document.getElementById('inputEmail');
var len=text.value.length;
document.getElementById('demo').innerHTML=typeof(parseInt(text.value[len - 1]));
PS 。在这里,即使您的value
属性是一个字符串,我们也将数组作为示例。这是因为字符串只是char的数组,可以用value[index]