2015-03-09 3 views
-2
<button id="mybtn">click me for index </button> 

Мой JavaScript код:document.getElementById и петли

var myarray = [2,4,6,5,5]; 

(i=0; i<= myarray.length; i++){ 

    var allBtn = document.getElementByID("mybtn"); 

    document.body.appendChild(allBtn); 
} 

Я хочу сделать несколько кнопок, поэтому я использовал цикл для создания тех. Но это не работает.

Вот URL: http://jsbin.com/donafuluha/1/edit?html,js,console,output

+0

Имя функции должно быть document.getElementById. Javascript чувствителен к регистру. – cytsunny

+1

Пожалуйста, объясните более четко, что вы пытаетесь сделать. Каковы числа в массиве? – nnnnnn

+0

см. Это http://stackoverflow.com/questions/7480496/javascript-getelementbyclass – Gogol

ответ

0

Вы можете использовать cloneNode для того, чтобы добавить существующие элементы

Working Demo

Код:

var myarray = [2,4,6,5,5]; 


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

    var allBtn = document.getElementById("mybtn").cloneNode(true); 

    document.body.appendChild(allBtn); 

} 
+0

i <= myarray.length не требуется i

+0

Yah !! Это то, что мне нужно .. спасибо !!! –

+0

@SagarSuryawanshi: Прохладный, просто отметьте это как ответ, если это поможет. – V31

-1
You should try following code snippet it will solve your problem 
    var myarray = [2,4,6,5,5]; 
    for(var i=0; i<= myarray.length; i++){ 
     var btn = document.createElement("BUTTON"); 
     var t = document.createTextNode("New Button"+(i+1)); 
     btn.appendChild(t); 
     document.body.appendChild(btn); 
     } 
+0

Почему бы вам не просто написать btn.innerHTML = «Новая кнопка» + (i + 1); ? – CyberFox

+1

Хотя это может ответить на вопрос, всегда полезно добавить текст в свой ответ, чтобы объяснить, что вы делаете. Прочитайте [как написать хороший ответ] (http://stackoverflow.com/help/how-to-answer). – jurgemaister

0

вы можете использовать cloneNode(), чтобы скопировать его и добавить несколько. Я также рекомендую удалить узел из DOM и показать только клоны на экране. И, глядя на ваш массив, кажется, вы хотите также добавить некоторые данные. Это делается либо путем присвоения имущества или с использованием .setAttribute («Name», значение)

var myarray = [2,4,6,5,5]; 
var proto = document.getElementById("mybtn"); 
proto.parentElement.removeChild(proto); 

for(var i=0; i<myarray.length; i++){ 
    var allBtn = proto.cloneNode(true); 
    allBtn.setAttribute("data-index", myarray[i]); 
    document.body.appendChild(allBtn); 
} 
+0

Yah! сделал это по вашему комментарию. Спасибо за ценные предложения. http://jsbin.com/xeficacoya/1/edit –

+0

не забудьте отметить это как ответ. – CyberFox

+0

также я должен спросить, я могу видеть в jsbin u, связанный с тем, что u не использует значения внутри массива. [2,4,6,5,5] Что означают эти цифры? – CyberFox

Смежные вопросы