[[如何包括 具有textNode的元素,而无需使用innerHTML或jQuery

问题描述 投票:0回答:1

在不使用innerHTML的情况下在body标签内插入此结构,并为3个li元素使用FOR循环:

<div id="divEx1">
    <p>Langages basés sur ECMAScript :</p>
    <ul>
        <li>JavaScript</li>
        <li>JScript</li>
        <li>ActionScript</li>
    </ul>
</div>

我已经创建了元素

与is文本节点和ul元素,但是在使用li元素时遇到了麻烦。我在名为eLi的变量中添加了document.createElement(“ li”),然后使用document.querySelector(“ ul”)。appenChild(eLi)为(i = 0; i <3; i ++)创建了一个循环,一个开关,用于将适当的document.createTextNode()放入名为texteLi的变量中,最后放入document.querySelector(“ li”)。appendChild(texteLi)

var eLi = document.createElement("li");
for (i = 0; i < 3; i++) {
document.querySelector("ul").appendChild(eLi);
switch (i) {
    case 1:
        texteLi = document.createTextNode("Javascript");
    case 2:
        texteLi = document.createTextNode("JScript");
    case 3:
        texteLi = document.createTextNode("Actionscript");

    document.querySelector("li").appendChild(texteLi);
}
}

这是我的结果:

https://ibb.co/Kj5PGKF

我不明白为什么会有CSS伪类:: marker

javascript dom
1个回答
0
投票
让我们先休息一下。我认为您需要在每种情况下都使用break;,在过去不使用它时我遇到了问题,此外,它有助于使您读取代码逻辑以进行调试。

接下来,如果我是对的,由于document.querySelector("li").appendChild(texteLi)被放在以下情况中,此代码将始终仅创建一个节点:3

最后我认为您应该从0而不是1开始案例,因为您有i < 3而不是i <= 3,但我看不到案例3是如何执行的

我认为我没有真正回答您提出的问题,但我认为这些可能是其中的一些问题


0
投票
不使用innerHTML node.textContent = text来设置节点的内容>
© www.soinside.com 2019 - 2024. All rights reserved.