【发布时间】:2017-02-24 16:44:22
【问题描述】:
尝试在这里编写非常简单干净的香草 JS 代码。这个循环似乎只运行一次。控制台没有错误。不知道该怎么做才能修复。
'use strict';
function start(){
var d = document,
main = d.getElementsByTagName('main')[ 0 ],
ul = d.createElement( 'ul' ),
li = d.createElement( 'li' ),
textContent = d.createTextNode( 'Item ' ),
i;
main.appendChild( ul );
li.appendChild( textContent );
for( i = 0; i <= 9; i = i + 1 ){
ul.appendChild( li );
}
}
start();
<!DOCTYPE html>
<html>
<body>
<main>
</main>
</body>
</html>
似乎正在发生的事情是appendChild 只是一遍又一遍地附加一个列表元素,只是替换它自己。我见过一些这样的例子,他们使用new 关键字,但我读过反对的文章。知道从这个循环中获取 ul 元素中的 10 个列表项的最佳方法吗?
【问题讨论】:
-
您必须每次都创建一个全新的
li元素,否则您必须克隆它。因为每次您重新附加相同的元素(将其剪切并附加)。 -
@ibrahimmahrir 我想可能是这样。不太确定如何进行。我必须使用
new关键字吗? -
你需要每次都创建它,就像你在 d.createElement 开始时所做的那样
标签: javascript html loops for-loop