2016-02-01 3 views
0

при исполнении, <p> внутри "demo" и document.write("hello") отображаются после выхода цикла for. Я хочу, чтобы оба оператора печатались до цикла for, как я могу это сделать?Как исправить выход следующего кода?

<html> 
<body> 
    <div id="main"> 
    <p>1</p> 
    <p>2</p> 
    <p>3</p> 
</div> 

<p id="demo"></p> 
    <p>11</p> <!-- wrong o/p here --> 
<script> 
    document.write("hello"); // and also wrong here 
    var x = document.getElementById("main"); 
    var y = x.getElementsByTagName("p"); 
    var len = y.length 
    for(var i=0;i<=len;i++) { 
    document.getElementById("demo").innerHTML += y[i].innerHTML + " <br>"; 
    } 
</script> 

</body> 
</html> 

Выход:

1 

2 

3 

1 
2 
3 

11 

hello 
+2

document.write обычно не рекомендуется ... –

+0

«p» не находится внутри «демо», это после него, потому что «демо» закрыта. – user2182349

ответ

0

Не используйте document.write.

Только выход с помощью:

document.getElementById("demo").innerHTML = "whatever"; 

всякий раз, когда вы хотите в коде. И избавиться от <p>11</p> просто сделайте весь вывод в коде.