如何在不使用push()unshift()方法的情况下在数组中添加输入值?

时间:2016-06-10 07:28:44

标签: javascript

var myArray = [],
    var inputText = document.getElementById('textbox').value;
var showArray = document.getElementById('display').innerHTML;
stackAdd = function() {
    if (inputText != "") {
        var i = myArray.length;
        myArray[i] = inputText;
        showArray = myArray[i];
        inputText = "";
    }
}

我想将输入值添加到数组中。对价值没有限制。请更正代码......

3 个答案:

答案 0 :(得分:0)

首先,您应该更改此行中的条件(计算正确数组的长度):

for (i = 0; i < arrayElements.length; i++) {

最初arrayElements.length将为0,因此您的循环不会运行。

此外,您应该更改DOM中选择元素的方式。 为了能够获得元素数组,您应该使用document.getElementsByClassName()函数

这样你应该给你的元素不是id,而是class,例如:

<input class="textbox" type="text" value="" />

然后你应该依靠元素的数量来使循环工作。

所以,在循环之前计算它们:

var totalElements = document.getElementsByClassName('textbox').length

然后在循环条件中使用该长度:

for (i = 0; i < totalElements.length; i++) {

答案 1 :(得分:0)

我为你创建了这个例子,它非常简单,当你只有1个元素要添加到数组时,不需要循环。

https://jsfiddle.net/6xpovrvh/

然后它遵循HTML和Javascript:

<强> HTML

<button id="test" onclick="Add();">
    Test
</button>

<div id="TestDiv">
    Bla
</div>

<强>的Javascript

var arrayElements = [];
function Add() {
    var count = arrayElements.length;
    arrayElements[count] = "Test" + count;
    document.getElementById("TestDiv").innerHTML += arrayElements[count];
};

答案 2 :(得分:0)

var myArray = [];

function stackAdd() {
    if (document.getElementById("textbox").value) {
        var i = myArray.length;
        document.getElementById("textbox").value += myArray[i];
        document.getElementById("display").innerHTML += myArray[i] + ',' + ' ';
        document.getElementById("textbox").value = "";
    }
}

我得到了我的问题的答案。它的工作....