2013-07-09 3 views
0

Я только начинаю с Javascript, и, ну, этот код совершенно очевиден, и он просто не работает, и я не знаю почему, потому что все выглядит штраф:Не удается «распечатать» с помощью .innerHTML с помощью цикла for

<html> 
<head> 
</head> 
<body> 
<h1>This is my first Javascript test.</h1> 
<p id = "y">123</p> 
<button type = "button" onclick = "do()">Do it!</button> 
<script> 
var x = ["First Element", "Second Element", "Third Element", "Fourth Element"]; 
function do() { 
    for (var i = 0; i < x.length; i++) { 
     document.getElementById("y").innerHTML = x[i] + "<br>"; 
    } 
} 
</script> 
</body> 
</html> 

Когда я нажимаю на кровавую кнопку, это просто не работает. Это не дает мне содержимое массива на теге < p>.

Благодарю вас!

+1

'do' - зарезервированное слово в JavaScript. Вы должны выбрать другое имя для своей функции. http://jsfiddle.net/3e3CN/ –

ответ

3

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

document.getElementById("y").innerHTML += x[i] + "<br>"; 

Кроме того, было бы разумнее иметь «Y», хранящуюся в локальной переменной, а не получать его каждый раз, ,

<script> 
var y = document.getElementById("y"); 
var x = ["First Element", "Second Element", "Third Element", "Fourth Element"]; 
function do() { 
    y.innerHTML = ""; 
    for (var i = 0; i < x.length; i++) { 
     y.innerHTML += x[i] + "<br>"; 
    } 
} 
</script> 
+0

Благодарю вас за подсказку (для хранения y в локальной переменной). Я изменился на «+ =», и он все еще не работает. Когда я нажимаю кнопку, y сохраняет исходное содержимое «123». –

+0

просто очистите innerHTML, прежде чем вы начнете цикл for. 'y.innerHTML =" ";' – mohkhan

+0

Я отредактировал ответ, чтобы решить проблему 123. – mohkhan

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