gpt4 book ai didi

javascript - 如何解决 "Could not convert JavaScript argument arg 0 [nsIDOMHTMLDivElement.appendChild]"错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:52:02 24 4
gpt4 key购买 nike

我有一个从 ajax 返回的 json 对象,当我提醒它时,它显示正确,我尝试将它们添加到无序列表并将其添加到占位符 div,但抛出上述错误..

function handleResponse() {
if(httpa.readyState == 4){
var response = httpa.responseText;
//alert(response);
if(response!='empty')
{
//alert(response);
eval("prod="+response);
var len = prod.length;
var st = "<ul>";
for(var cnt=0;cnt<len;cnt++)
{
st = st + "<li onclick='set("+prod[cnt].id+")'>"+prod[cnt].name+"</li>";
}
st = st + "</ul>";
}
var tt = document.getElementById('holder1');
tt.appendChild(st); // i even tried **tt.appendChild(eval(st));**
tt.style.display = 'block';
}

}

最佳答案

一些评论:

  • eval("prod="+response); - 不要那样做。它创建了一个全局“prod”变量,可以执行任意代码,阻止 JS 引擎加速你的代码,通常被认为是一种糟糕的编码习惯。
    • 改为使用 JSON 解析器(来自 json.org 或您最喜欢的库中的帮助器)。
  • tt.appendChild(st);//我什至尝试过 **tt.appendChild(eval(st));** - appendChild 接受一个 DOM 节点; st 是一个字符串,eval(st) 假定它包含 JavaScript 代码来评估 st(因此在 XML 上运行它会导致语法错误,除非你使用 E4X ,它仍然不会创建适合与 appendChild 一起使用的对象)。
    • 您应该解析您构建的 HTML 代码(通过 innerHTMLcreateDocumentFragment,或者再次使用您最喜欢的 JS 库中的帮助程序)
  • 最后,如果您经常这样做,请考虑 using templates instead .

关于javascript - 如何解决 "Could not convert JavaScript argument arg 0 [nsIDOMHTMLDivElement.appendChild]"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2786651/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com