jQuery追加DOM

Raj*_*Raj 9 javascript jquery dom

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

<event source="foo">
    <contents>
        <h1>This is an event</h1>
        This is the body of the event
    </contents>
</event>
Run Code Online (Sandbox Code Playgroud)

我有一个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 ) );
        });
    }
    
    Run Code Online (Sandbox Code Playgroud)

append()调用因未解决错误而失败: Chrome上的WRONG_DOCUMENT_ERR:DOM异常4.调试器将值显示为DOM 元素对象,将$(value)显示为包含ElementObject.

任何帮助将不胜感激.

谢谢.-Raj

Tom*_*lak 8

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

尝试克隆它们:

$("#eventDiv").append( jData.find("contents").children().clone() );
Run Code Online (Sandbox Code Playgroud)

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

$("#eventDiv").append( jData.find("contents").html() );
Run Code Online (Sandbox Code Playgroud)