当第一段代码
时,Javascript代码无效var parag = document.getElementsByTagName("p");
for (var i = 0; i <= parag.length; i++) {
parag[i].innerHTML = parag[i].innerHTML + parag[i].tagName.toLowerCase();
}
在第二件之前插入。
var ul = document.getElementById("ul");
var li = document.getElementById("li");
var newli = document.createElement("li");
newli.innerHTML = "newli";
ul.insertBefore(newli, li);
在第一段代码之后,所有代码都不起作用,但如果我在有问题的代码之前插入它,则有效。
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>10</p>
<p>10</p>
<ul id = "ul">
<li id = "li">li</li>
</ul>
<script>
var parag = document.getElementsByTagName("p");
for (var i = 0; i <= parag.length; i++) {
parag[i].innerHTML = parag[i].innerHTML + parag[i].tagName.toLowerCase();
}
var ul = document.getElementById("ul");
var li = document.getElementById("li");
var newli = document.createElement("li");
newli.innerHTML = "newli";
ul.insertBefore(newli, li);
</script>
</body>
</html>
答案 0 :(得分:0)
您好,因为您正在使用<=
作为数组长度并且您走出了数组,因此您应该使用<
for for循环,
for (var i = 0; i <= parag.length; i++) {//wrong usage
for (var i = 0; i < parag.length; i++) {//correct usage
答案 1 :(得分:0)
试试这个i < parag.length
代替i <= parag.length
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>10</p>
<p>10</p>
<ul id = "ul">
<li id = "li">li</li>
</ul>
<script>
var parag = document.getElementsByTagName("p");
for (var i = 0; i < parag.length; i++) {
parag[i].innerHTML = parag[i].innerHTML + parag[i].tagName.toLowerCase();
}
var ul = document.getElementById("ul");
var li = document.getElementById("li");
var newli = document.createElement("li");
newli.innerHTML = "newli";
ul.insertBefore(newli, li);
</script>
</body>
</html>