Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过javascript追加子节点_Javascript_Html_Jquery_Dom - Fatal编程技术网

通过javascript追加子节点

通过javascript追加子节点,javascript,html,jquery,dom,Javascript,Html,Jquery,Dom,在加载页面时,我通过ajax动态生成html,类似这样 动态插入, 1. 2. 现在,我正在尝试将另一个节点添加到我的元素中。同样,通过ajax动态执行 服务器响应类似于, 1. 2. 我想把它插入到我第一次得到的元素中 最终结果, 1. 2. 1. 2. 在进行第二次ajax调用时,我得到了对1元素的引用 到目前为止我试过什么? 无论如何,我都可以尝试我已经尝试过了,但是我无法插入节点。我认为我做错了什么事。我的尝试是 pElement为1 pElement.paren

在加载页面时,我通过ajax动态生成html,类似这样

动态插入,

1. 2.

现在,我正在尝试将另一个节点添加到我的
元素中。同样,通过ajax动态执行

服务器响应类似于,

1. 2.

我想把它插入到我第一次得到的元素中

最终结果,

1. 2.

1. 2.

在进行第二次ajax调用时,我得到了对
1
元素的引用


到目前为止我试过什么? 无论如何,我都可以尝试我已经尝试过了,但是我无法插入节点。我认为我做错了什么事。我的尝试是

pElement为
1
  • pElement.parent().appendChild(data.expandTreeVal)
  • pElement.parent().append(data.expandTreeVal)
  • pElement.parent().after(data.expandTreeVal)
  • pElement.parentNode().appendChild(data.expandTreeVal)
  • 调试 我真的从服务器上得到了什么吗

    是,当我发出
    警报(data.expandTreeVal)时它显示我想要的HTML


    任何想法都会大有帮助。

    您只能将DOM元素附加到元素,不能将HTML代码附加到字符串中

    创建一个元素,使用
    innerHTML
    方法将HTML代码放入其中,然后从中获取第一个子节点,以将
    p
    元素作为DOM元素

    var div = document.createElement('DIV');
    div.innerHTML = data.expandTreeVal;
    var p = div.childNodes[0];
    
    然后可以使用
    parentNode
    appendChild
    方法将其添加到文档中:

    pElement.parentNode.appendChild(p);
    

    演示:

    您可能需要发布一个完整的用例,让我完全理解,但我认为整个问题在于您引用的方法并不存在

    我的用例工作得很好,如下所示:

    <p class="Hello">
      <span id='click'>1</span>
      <span>2</span>
      <p class="Hello lvl2">
       <span id='click'>1</span>
       <span>2</span>
      </p>
    </p>
    

    我认为您可以使用.prepend()函数,我想它应该可以工作。debug
    pElement
    ,它是否引用您动态添加到页面的元素,或者在添加到页面之前引用API响应。然后调试
    pElement.parent()
    以确保选择了正确的元素。
    元素不能有
    子元素。@zzzzBov,这是一个很好的观点!谢谢,很抱歉,我来自Objective C和Java,通过学习脚本语言(lang:)让我的脚湿了。
    [id]
    属性需要是唯一的,你应该使用
    [class]
    属性。这很有魅力,但是我错过了一个好的点,我不应该在中添加,正如OP提到的。但是谢谢你给我的启示,告诉我该怎么做。
    var div = document.createElement('DIV');
    div.innerHTML = data.expandTreeVal;
    var p = div.childNodes[0];
    
    pElement.parentNode.appendChild(p);
    
    <p class="Hello">
      <span id='click'>1</span>
      <span>2</span>
      <p class="Hello lvl2">
       <span id='click'>1</span>
       <span>2</span>
      </p>
    </p>
    
    ​var pElement = document.getElementById('click');
    alert(pElement.parentNode);​​​