我正在尝试使用 .append
将 HTML 片段动态附加到现有元素。
不知何故,脚本创建的 HTML 字符串没有附加到元素。
附加到的元素在附加代码段时并未挂接到 DOM 中。
所有这些都封装在一个 JavaScript 函数中。这是代码:
append_content = function() {
var elem = $('<li><div>some text</div></li>');
var somecontent = get_content(); // returns a string: '<div>xx</div>'
elem.append('<div>bleh1</div>');
elem.append(somecontent);
elem.append('<div>bleh2</div>');
console.log(elem);
return elem;
}
日志正确包含所有项目,例如:
<li>
<div>some text</div>
<div>bleh1</div>
<div>xx</div>
<div>bleh2</div>
</li>
但是当我稍后将 elem 挂接到 DOM 时,函数调用的内容消失了。 IE。它在计算源中不可见(无论是在 FireBug 还是 Chrome 开发工具中)。
看起来像这样:
<li>
<div>some text</div>
<div>bleh1</div>
<div>bleh2</div>
</li>
我几乎确信我这里有一些范围问题或类似问题,但我不明白。控制台中没有错误消息。有什么建议吗?
更新
的确,这是一个自作自受的问题。删除要在此处发布的考试的代码让我意识到我调用了一个类似的函数而没有上面提到的函数调用 - 愚蠢的我。感谢所有评论和帮助。
最佳答案
在我看来它是正确的 - 我会检查 get_content() 方法的输出以确保它实际上返回有效的 html。使用 alert("somecontent") 和控制台检查它 - console.log 只在 firebug 中写出第一行 XML - 不确定 chrome ...
关于javascript - 将生成的内容添加到未绑定(bind)到 DOM 的 jQuery 对象失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10396227/