好的,现在我已经抓住了这个......似乎related to this ol' chestnut
这是我的问题:
var testlength = theForm.elements.length;
var testlastelement = theForm.elements[testlength].type;
testlength返回60
BUT!
testlastelement返回为“undefined”(null或不是对象)
是什么给出的?
FWIW,我的页面有一堆输入(我试图遍历表单并获取名称,值等)...表单输入包含在表中但最后的元素(也是类型) = image)在那张桌子之外。
答案 0 :(得分:10)
使用testlength - 1
。数组是从零开始的。
答案 1 :(得分:4)
JavaScript中的form.elements等数组和HTMLCollections具有从0开始的索引,这意味着您有60个元素,它们的索引从0到59,或者从0到长度为1
答案 2 :(得分:3)
好吧,数组的第一个元素的索引为0,因此你应该尝试这个:
var testlastelement = theForm.elements[testlength-1].type;
答案 3 :(得分:1)
您需要testlength-1,因为数组是zeo索引的。那就是:
var testlastelement = theForm.elements[testlength-1].type;
此外,camelcase是javascript标准。写这个可能更好:
var testLastElement = theForm.elements[testLength-1].type;
至少要保持一致。你的变量theForm是camelcased。