通过javascript追加子节点
在加载页面时,我通过ajax动态生成html,类似这样 动态插入,通过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
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()函数,我想它应该可以工作。debugpElement
,它是否引用您动态添加到页面的元素,或者在添加到页面之前引用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);