jQuery追加DOM

jQuery.append()的所有示例似乎都采用了一个html字符串并将其附加到容器中。 我的用例略有不同。 我的服务器返回一个包含要显示的HTML文本的XML,如:

  

This is an event

This is the body of the event

我有一个div,需要显示这些内容。

我的JS目前执行以下操作:

  1. 在$ .ajax()成功处理程序中将XML数据加载到jQuery中:

    var jData = $(data);

  2. 找到内容标记并尝试将其子项添加到应该显示事件的div:

     var contents = jData.find( "contents" ); if( contents != null ) { $( contents ).children().each( function( index, value ) { $( "#eventDiv" ).append( $( value ) ); }); } 

append()调用失败并显示Uncaught Error: Chrome上的WRONG_DOCUMENT_ERR:DOMexception4 。 调试器将值显示为DOM Element对象,将$(value)显示为包含ElementObject

任何帮助将不胜感激。

谢谢。 -Raj

您不能将属于一个DOM树的节点附加到另一个文档。

尝试克隆它们:

 $("#eventDiv").append( jData.find("contents").children().clone() ); 

或者只是使用他们的文本表示来重新创建它们:

 $("#eventDiv").append( jData.find("contents").html() );