Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.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 JS Dom-appendChild()与Add()之间的差异_Javascript_Dom - Fatal编程技术网

Javascript JS Dom-appendChild()与Add()之间的差异

Javascript JS Dom-appendChild()与Add()之间的差异,javascript,dom,Javascript,Dom,在某种程度上,我遇到了两种类似的情况——首先,我在下拉选择中使用parent.add(child)添加子元素,该下拉选择中有选项children,效果很好。另一个地方我有引导下拉列表,锚元素作为子元素,但这里是父元素。添加(子元素)不再工作并引发此错误TypeError:userDropdown[item]。添加不是一个函数。只有appendChild在下面这样工作 let option = document.createElement('option'); option.class

在某种程度上,我遇到了两种类似的情况——首先,我在下拉选择中使用parent.add(child)添加子元素,该下拉选择中有选项children,效果很好。另一个地方我有引导下拉列表,锚元素作为子元素,但这里是父元素。添加(子元素)不再工作并引发此错误
TypeError:userDropdown[item]。添加不是一个函数
。只有appendChild在下面这样工作

 let option = document.createElement('option');
     option.className = "dropdown-item"
     option.innerText = username;
     option.setAttribute('data-value',results[username]);
     userDropdown[item].add(option);
当我在网上搜索时,我找不到任何关于这两者有什么不同的明确答案。有人能给我解释一下吗

我在下拉选择中使用parent.add(child)添加子元素

这是因为您正在调用该方法。它只存在于元素上,而不存在于所有节点上,与此不同

const selectEl=document.createElement(“选择”);
const divEl=document.createElement(“div”);
const spanEl=document.createElement(“span”);
const bodyEl=document.body;
console.log(“您可以.添加到:”,“在selectEl中添加”);
log(“您可以将.add添加到a:”,“在divEl中添加”);
log(“您可以.添加到a:”,“在spanEl中添加”);

log(“您可以在bodyEl中添加:”、“add”)
没有“add”这样的词,您可能会将其与jquery add@GottZ混淆,即您正在调用的类型
add
有关事项:。另外,“不再工作”不是诊断性的——您得到了一条控制台错误消息,该消息表示它不是一个函数,它不在非select元素上。提问时,最好包括所有相关信息。
 let option = document.createElement('a');
     option.className = "dropdown-item"
     option.innerText = username;
     option.setAttribute('data-value',results[username]);
     userDropdown[item].appendChild(option);