gpt4 book ai didi

javascript - "push"不是函数 [在 getElementsByTagName 返回的元素上]

转载 作者:太空宇宙 更新时间:2023-11-04 13:39:37 26 4
gpt4 key购买 nike

我有一点 Javascript,我用 XMLHttpRequest 发布我的表单,否则工作正常,但是当我尝试将 SELECT 值添加到 INPUT 值数组时,Javascript 似乎失去了理智(或我有)。

此函数只是构建“name1=value1&name2=value2”字符串并将其传递。

代码:

function sendTheForm() {
var postData = '';
var inputArr = document.getElementsByTagName('input');
if (inputArr.hasOwnProperty(length)) alert("ARRAY!!");
var selects = document.getElementsByTagName('select');
var tmpObj = new Object();

for (var i = 0; i < selects.length; i++) {
tmpObj.name = selects[i].name;
tmpObj.value = selects[i].value;
inputArr.push(tmpObj);
}

for (var i = 0; i < inputArr.length; i++) {
if (inputArr[i].value) {
if (postData.length) postData += '&';
postData += inputArr[i].name;
postData += '=';
postData += escape(inputArr[i].value);
}
}

makeHttpReq(postData)
}

我在 FireFox 中得到的错误是:“inputArr.push 不是一个函数”它确实说它是一个数组。

现在,除了它是一个方法(而不是一个函数)这一事实之外,这里似乎出现了严重的错误,它就在我的眼皮底下,我却看不到它。帮忙?

早些时候,我尝试这样做:

  len = inputArr.length;
inputArr[len].name = ...

并且还得到了一个错误,即 inputArr[31] 未定义。这可能很明显,但我没有看到。帮忙?

最佳答案

具有.length 属性并不意味着它是一个数组。 getElementsByTagName()返回 DOM 2 NodeList ,不是 Array .

关于javascript - "push"不是函数 [在 getElementsByTagName 返回的元素上],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4465882/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com