javascript - 尝试替换元素时整个 div 被替换

标签 javascript

我想用另一个元素替换一个元素。 然而,该元素与其他元素一起放置在一个 div 中。 当我运行代码时,整个 div 都会被替换。 如何防止这种行为?

function edit(e) {
   selectedElement = e.id
   var newElement = document.createElement("input");
   var newElementA = document.createTextNode("bla");
   newElement.appendChild(newElementA);
   var oldElement = document.getElementById(selectedElement);
   var parentDiv = oldElement.parentNode
   parentDiv.replaceChild(newElement, oldElement);
}

最佳答案

您不应该将文本节点附加到输入框。您应该设置该值。

Here is a working codepen, based on your comments.

<div id="parentDiv">
  <div>
    hi
  </div>
  <a id="pleaseReplace" onclick="edit(event)">hi2</a>
  <div>
    hi3
  </div>
</div>


function edit(e) {
  selectedElement = document.getElementById(e.srcElement.id);
  var newElement = document.createElement("input");
  newElement.value = selectedElement.innerHTML;
  var parentDiv = selectedElement.parentNode
  selectedElement = parentDiv.replaceChild(newElement, selectedElement);
}

关于javascript - 尝试替换元素时整个 div 被替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32336691/

相关文章:

javascript - 设置十进制数的格式

php - Facebook 在未经publish_stream 许可的情况下发布到我的页面墙

javascript - 当我点击按钮时,我的输入标签变空

javascript - Ajax 处理订单

javascript - 如何在div中找到具有相同类的最后两个元素并为它们分配一个类?

javascript - 如何编码值以放入 iframe src 属性以防止 ASP.NET MVC 中的 XSS

javascript - Bower 不安装组件

javascript - 当 JSON 从数据属性读取时,HTML 实体转换为其字符值

javascript - 将 css3 转换添加到当前 css3 转换值

javascript - 使用依赖注入(inject) nodejs 的密码保护 REDIS