javascript - 用 Ajax 响应替换 DOM 节点

标签 javascript ajax dom

我有一个如下所示的 ajax 响应:

<div class = "element3"> some other text</div>

我想用 resp 替换下面的 element1:

<div class = "a">
  <div class = "element1"></div>
  <div class = "element2"></div>
</div>

所以在替换之后我会得到:

<div class = "a">
  <div class = "element3"> some other text</div>
  <div class = "element2"></div>
</div>

我试过 replaceChild() 但它不起作用,因为响应不是 DOM 对象..

谢谢!

最佳答案

innerHTML() 只替换标签之间的内容,outerHTML() 将允许您替换开始和结束标签,有效地替换 DOM节点。

var element = document.getElementsByClassName('element1')[0];
element.outerHTML("<div class = 'element3'> some other text</div>");


见:

注意:由于使用了 getElementsByClassName(),此解决方案适用于(参见:http://caniuse.com/getelementsbyclassname):

  • Internet Explorer 9+
  • 火狐 3+
  • Opera 9.5+
  • Chrome 4+
  • Safari 3.1+

关于javascript - 用 Ajax 响应替换 DOM 节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12887740/

相关文章:

javascript - 使用 JSON 将事件映射到 FullCalendar

javascript - 简单的js框架,DOM。 (模块风格,试图让它像 jQuery 风格)

javascript - 变量不起作用

javascript - 如何在 Javascript 中仅使用其引用来更改对象

Javascript:选择文本以复制 HTML 文档中的所有相似元素

javascript - IOS 10.3.1 Chrome 浏览器 CORS 失败

ajax - firebug:当 JS 代码更改 <div id ="abcd"> 时如何设置监视?

ajax - MVC4 - Ajax.BeginForm 和部分 View 给出 'undefined'

javascript - 如何从通过 createHTMLDocument 方法创建的文档中提取样式表

javascript - 动态设置文件输入的值