JavaScript脚本没有运行?
这段代码的思想是显示一个无序的HTML元素列表,但由于某些原因,它似乎不起作用 我使用升华文本来编写脚本和HTML代码。我曾尝试通过Chrome开发者控制台执行该脚本,但也没有成功JavaScript脚本没有运行?,javascript,html,scripting,Javascript,Html,Scripting,这段代码的思想是显示一个无序的HTML元素列表,但由于某些原因,它似乎不起作用 我使用升华文本来编写脚本和HTML代码。我曾尝试通过Chrome开发者控制台执行该脚本,但也没有成功 // 1) Crear una lista desordenada con 10 elementos dentro usando un bucle for. // Tener en cuenta que solo se le puede hacer un único appendChild al ul crea
// 1) Crear una lista desordenada con 10 elementos dentro usando un bucle for.
// Tener en cuenta que solo se le puede hacer un único appendChild al ul creado,
// asi minimizamos el tiempo de modificaciones en el DOM.
var list = document.createElement('ul');
var elements = document.createDocumentFragment();
for (var i = 0; i < 10; i++) {
let element = document.createElement('li');
element.innerText = "Elemento " + i;
elements.appendChild(element);
}
list.appendChild(elements);
document.body.appendChild(list);
//1)这是一个非常好的例子,它包含了10个元素。
//这是一个独立的城市,它是一个独立的城市,
//asi最大限度地减少了DOM中的修改。
var list=document.createElement('ul');
var elements=document.createDocumentFragment();
对于(变量i=0;i<10;i++){
let element=document.createElement('li');
element.innerText=“Elemento”+i;
元素。追加子元素(元素);
}
列表。追加子元素(元素);
文件.正文.附件(列表);
确保脚本标记位于正确的位置
JavaScript在
或
中,您可以在HTML文档中放置任意数量的脚本。脚本可以放在HTML页面的
或
部分,也可以同时放在这两个部分
你的页面
//javascript就在这里
你的身体在这里。
var list=document.createElement('ul');
var elements=document.createDocumentFragment();
对于(变量i=0;i<10;i++){
let element=document.createElement('li');
element.innerText=“Elemento”+i;
元素。追加子元素(元素);
}
列表。追加子元素(元素);
文件.正文.附件(列表)代码>当您在加载DOM后通过函数执行相同操作时,它会起作用。它在控制台中给出了此错误(在Chrome中为F12)-
未捕获类型错误:无法读取null的属性“appendChild”
这可能是因为在脚本的初始执行期间DOM不可用,因此节点不可用于“appendChild”函数调用
检查一下,我正在通过一个功能调用相同的代码,该功能按预期工作-
<html>
<script>
//var list = document.getElementById('test');
//var elements = document.createDocumentFragment();
console.log(list);
for (var i = 0 ; i < 10 ; i++){
/* let element = document.createElement('li');
element.innerText = "Elemento " + i;
console.log(i);*/
var node = document.createElement("LI"); // Create a <li> node
var textnode = document.createTextNode("Water"); // Create a text node
node.appendChild(textnode); // Append the text to <li>
document.getElementById('myList').appendChild(node);
}
//list.appendChild(elements);
//document.appendChild(list);
function myFunction() {
var node = document.createElement("LI");
var textnode = document.createTextNode("Water");
node.appendChild(textnode);
document.getElementById("myList").appendChild(node);
}
</script>
<body>
<button onclick="myFunction()">Try it</button>
<ul id="myList">
<li>Coffee</li>
<li>Tea</li>
</ul>
</body>
</html>
//var list=document.getElementById('test');
//var elements=document.createDocumentFragment();
控制台日志(列表);
对于(变量i=0;i<10;i++){
/*let element=document.createElement('li');
element.innerText=“Elemento”+i;
控制台日志(i)*/
var node=document.createElement(“LI”);//创建一个节点
var textnode=document.createTextNode(“水”);//创建一个文本节点
node.appendChild(textnode);//将文本追加到
document.getElementById('myList').appendChild(节点);
}
//列表。追加子元素(元素);
//文件.附件(清单);
函数myFunction(){
var节点=document.createElement(“LI”);
var textnode=document.createTextNode(“水”);
node.appendChild(textnode);
document.getElementById(“myList”).appendChild(节点);
}
试试看
- 咖啡
- 茶
希望这有帮助 控制台中有错误吗?你写的东西没有问题,应该可以正常工作。我们无法告诉你为什么它不适合你。我们需要更多的代码。也许可以提供您的HTML,以便我们查看脚本标记是否位于正确的位置。text/javascript
是默认值,您不必指定它。我创建了一个变量:“var body=document.querySelector(“body”);”然后我将“document.body.appendChild(list);”替换为“body.appendChild(list);”使其在google chrome中工作。我猜我的问题出在“document.body.appendChild(list);”上?
<html>
<script>
//var list = document.getElementById('test');
//var elements = document.createDocumentFragment();
console.log(list);
for (var i = 0 ; i < 10 ; i++){
/* let element = document.createElement('li');
element.innerText = "Elemento " + i;
console.log(i);*/
var node = document.createElement("LI"); // Create a <li> node
var textnode = document.createTextNode("Water"); // Create a text node
node.appendChild(textnode); // Append the text to <li>
document.getElementById('myList').appendChild(node);
}
//list.appendChild(elements);
//document.appendChild(list);
function myFunction() {
var node = document.createElement("LI");
var textnode = document.createTextNode("Water");
node.appendChild(textnode);
document.getElementById("myList").appendChild(node);
}
</script>
<body>
<button onclick="myFunction()">Try it</button>
<ul id="myList">
<li>Coffee</li>
<li>Tea</li>
</ul>
</body>
</html>