无法在Javascript中控制appendChild()
我在使用Javascript拆分页面时遇到问题。我想把17个p标签移到一个div标签中。 我有34个p标签,如下所示:无法在Javascript中控制appendChild(),javascript,append,Javascript,Append,我在使用Javascript拆分页面时遇到问题。我想把17个p标签移到一个div标签中。 我有34个p标签,如下所示: <p>1</p> <!-- Each p tag have the value is the number of the p tag --> 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 1 2 3 4 5 6 7 8 9 10 11 12
<p>1</p> <!-- Each p tag have the value is the number of the p tag -->
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2, 3, 4
for(i=0;i<p.length;i++){
var newNode = p[i].cloneNode(true);
div.appendChild(newNode);
}
这是演示:
同时,我希望div标签中的p标签如下所示:
<p>1</p> <!-- Each p tag have the value is the number of the p tag -->
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2, 3, 4
for(i=0;i<p.length;i++){
var newNode = p[i].cloneNode(true);
div.appendChild(newNode);
}
那么问题是什么呢?我怎样才能修好它?
非常感谢你 在div上创建appendChild时,它会删除p数组的元素。这将使这种情况只会发生。假设有4个p元素
1, 2, 3, 4
如果从p[0]生成appendChild,它将按预期移动p元素,但现在您的列表如下所示:
<p>1</p> <!-- Each p tag have the value is the number of the p tag -->
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2, 3, 4
for(i=0;i<p.length;i++){
var newNode = p[i].cloneNode(true);
div.appendChild(newNode);
}
您现在指向p[1],您希望它是元素2,但它将是元素3
要修复它,您可以始终指向p[0],它的行为将与您预期的一样。在div上创建appendChild时,它会删除p数组的元素。这将使这种情况只会发生。假设有4个p元素
1, 2, 3, 4
如果从p[0]生成appendChild,它将按预期移动p元素,但现在您的列表如下所示:
<p>1</p> <!-- Each p tag have the value is the number of the p tag -->
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2, 3, 4
for(i=0;i<p.length;i++){
var newNode = p[i].cloneNode(true);
div.appendChild(newNode);
}
您现在指向p[1],您希望它是元素2,但它将是元素3
要修复它,您可以始终指向p[0],它将按照您的预期运行。您的循环应该如下所示:
<p>1</p> <!-- Each p tag have the value is the number of the p tag -->
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2, 3, 4
for(i=0;i<p.length;i++){
var newNode = p[i].cloneNode(true);
div.appendChild(newNode);
}
您的循环应该如下所示:
<p>1</p> <!-- Each p tag have the value is the number of the p tag -->
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2, 3, 4
for(i=0;i<p.length;i++){
var newNode = p[i].cloneNode(true);
div.appendChild(newNode);
}
它们的顺序是否与向下或向上代码的顺序相同?它们的顺序是否与向下或向上代码的顺序相同?这是正确的,但实际上创建了p元素的副本。在循环中删除旧的p元素。p[i].parentNode.removeChildp[i]克隆一旦在循环中删除,旧问题就会再次出现,它们将从p数组中删除:Ohh yes。。。你又对了。。。只想去掉前17个哦!谢谢你!我不知道ClonenodeHTMLDOM。我会研究的。谢谢你!这是正确的,但实际上创建了p元素的副本。在循环中删除旧的p元素。p[i].parentNode.removeChildp[i]克隆一旦在循环中删除,旧问题就会再次出现,它们将从p数组中删除:Ohh yes。。。你又对了。。。只想去掉前17个哦!谢谢你!我不知道ClonenodeHTMLDOM。我会研究的。谢谢你!谢谢你!你的建议对我很有用!谢谢你!你的建议对我很有用!