jQuery.append()的所有示例似乎都采用了一个html字符串并将其附加到容器中。我的用例略有不同。我的服务器返回一个包含要显示的HTML文本的XML,如:
<event source="foo">
<contents>
<h1>This is an event</h1>
This is the body of the event
</contents>
</event>
我有一个div,需要显示这些内容。
我的JS目前执行以下操作:
在$ .ajax()成功处理程序中将XML数据加载到jQuery中:
var jData = $(数据);
找到内容标记并尝试将其子项添加到应显示该事件的div:
var contents = jData.find( "contents" );
if( contents != null )
{
$( contents ).children().each( function( index, value )
{
$( "#eventDiv" ).append( $( value ) );
});
}
append()调用因Chrome上的未捕获错误:WRONG_DOCUMENT_ERR:DOM异常4 而失败。调试器将值显示为DOM 元素对象,将 $(value)显示为包含元素的 Object >
任何帮助将不胜感激。
感谢。 -Raj
答案 0 :(得分:8)
您不能将属于一个DOM树的节点附加到另一个文档。
尝试clone他们:
$("#eventDiv").append( jData.find("contents").children().clone() );
或者只是使用他们的文字表示来重新创建它们:
$("#eventDiv").append( jData.find("contents").html() );