2016-06-10 35 views
-3
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 = ""; 
    } 
} 

我想將我的輸入值添加到數組中。沒有限制的價值。請更正代碼......如何在不使用push()unshift()方法的情況下在數組中添加輸入值?

+0

顯示您的HTML代碼。 – Mairaj

+0

你想添加多少個元素? – Sudsy

+0

那麼首先你的循環不會運行..你說arrayElements = [];因此,arrayElements的長度爲0.然後在你的循環中你說我= 0,我應該小於arrayElements.length這是0.我沒有得到你想要完成的... –

回答

0

首先,則應該在該行改變狀態(計數正確數組的長度):

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

最初arrayElements.length將爲0 ,所以你的循環不會運行。

另外,您應該改變在DOM中選擇元素的方式。 爲了能夠獲得元素的數組,你應該使用document.getElementsByClassName()功能

這樣,你應該給你的元素沒有ID,但類,例如:

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

那麼你應該依靠量你的元素讓你的循環起作用。

因此,在循環之前盡數:

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

,然後在循環條件使用長度:

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

0

我創造了這個例子給你,這是很簡單,當你只有一個元素需要添加到數組中時,不需要循環。

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]; 
}; 
+0

我試過你的,但仍然沒有輸出....... – Creator

+0

@Creator - 你試過小提琴嗎?我可以看到你改變了你的代碼問題,你仍然需要提供html。 –

+0

你的小提琴工作正常......但我一個人仍然沒有得到結果。 – Creator

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 = ""; 
    } 
} 

我得到了我的問題的答案。它的工作....

相關問題