javascript - 当我在 javascript 中手动创建列表时,无法使用 querySelectorAll(); 获取值;

标签 javascript list typescript nodes

  let List = document.createElement("div");
        List.setAttribute('id', 'name');
        let List1 = document.createElement("ul");
         let List2 = document.createElement("li");
            let  Value = document.createTextNode("america");
            List2.appendChild(Value);
         let List3 = document.createElement("li");
                 Value = document.createTextNode("london");
            List3.appendChild(Value);
            List1.appendChild(List2);
            List1.appendChild(List3);
            List.appendChild(List1);

When i enter let li = document.querySelectorAll("#name li");

我没有获得带有 li 标签的列表元素?代码有什么问题吗?

最佳答案

否则该调用将是:

List.querySelectorAll("#name li");
//better more  
List.querySelectorAll("li");
//because you already have the handle for #name element in your hands.

无论它们是否已附加到文档中,您都将获得查询的元素。

如果您已经拥有查询主题的根节点,则切勿在查询选择器上调用文档元素。或者是否已有可用的本地包装器唯一 ID。

成本太高了!

您应该始终避免这种情况。

除非没有其他选择,否则切勿使用查询选择器 all。

List.getElementsByTagName("li"); 

始终是一种更可取的方式 - 而且速度更快。

关于javascript - 当我在 javascript 中手动创建列表时,无法使用 querySelectorAll(); 获取值;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42478734/

相关文章:

javascript - 如何有条件地创建具有属性的 JavaScript 对象

javascript - jQuery Ajax 中为全局变量赋值的问题

python - 将 python 字典追加到列表中

javascript - 如果 array.find() 不返回任何内容,如何调用方法?

界面中的 typescript 动态键

angular - 在哪里可以找到我的 Angular 2 CLI TypeScript 错误?

javascript - 什么是双箭头函数?

javascript - 如何避免选择框上的ajax结果

c# - 随机播放字符串列表,但不要太多

python - 寻找一种按休息时间分割类次的算法