Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中手动创建列表时,无法使用querySelectorAll()获取值;_Javascript_List_Typescript_Nodes - Fatal编程技术网

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

在javascript中手动创建列表时,无法使用querySelectorAll()获取值;,javascript,list,typescript,nodes,Javascript,List,Typescript,Nodes,当我输入时,让li=document.queryselectoral(“#name li”) 我没有得到带有li标记的列表元素??代码有什么问题?我认为这是因为您没有将List添加到文档中。您需要将您创建的List节点附加到文档中。 试试这个: let List = document.createElement("div"); List.setAttribute('id', 'name'); let List1 = document.createElement

当我输入时,让li=document.queryselectoral(“#name li”)


我没有得到带有li标记的列表元素??代码有什么问题?

我认为这是因为您没有将
List
添加到文档中。

您需要将您创建的
List
节点附加到文档中。 试试这个:

  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);

现在,您的document.queryselectoral语句应该可以工作了。

否则该调用将是:

let List = document.createElement("div");
List.setAttribute('id', 'test');
let List1 = document.createElement("ul");
let List2 = document.createElement("li");
let  Value = document.createTextNode("java");
List2.appendChild(Value);
let List3 = document.createElement("li");
Value = document.createTextNode("ajax");
List3.appendChild(Value);
List1.appendChild(List2);
List1.appendChild(List3);
List.appendChild(List1);

document.body.appendChild(List);
不管它们是否已附加到文档中,您都将获得查询的元素

如果您已经有查询主题的根节点,请不要在查询选择器上调用document元素。或者如果已经有本地包装器唯一ID可用

那太贵了

你应该一直避免这样

除非没有其他选择,否则永远不要使用查询选择器all

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

总是一种更可取的方式,而且速度非常快。

它的抛出类型错误:document.body.append不是一个函数(…)@NahushFarkandeappendChild正在工作。。谢谢@Nahushfarkanderlight!。我的错误。乐意帮忙:)
List.getElementsByTagName("li");