尽快访问页面的函数有问题,所以我需要用纯 javascript 编写它并将其包含在头部。不知道该怎么做,因为据我了解,通过使用 .replace() 新元素将被移动到页面上的不同位置。jQuery 的 replaceWith() 行为是理想的。
$("#imagefiles").replaceWith("<input type='file' name='imagefiles' id='imagefiles' />");
尽快访问页面的函数有问题,所以我需要用纯 javascript 编写它并将其包含在头部。不知道该怎么做,因为据我了解,通过使用 .replace() 新元素将被移动到页面上的不同位置。jQuery 的 replaceWith() 行为是理想的。
$("#imagefiles").replaceWith("<input type='file' name='imagefiles' id='imagefiles' />");
var image = document.getElementById('imagefiles'), parent = image.parentNode,
tempDiv = document.createElement('div');
tempDiv.innerHTML = "<input type='file' name='imagefiles' id='imagefiles' />"
var input = tempDiv.childNodes[0];
parent.replaceChild(input, image);
编辑不是我是:
var image = document.getElementById('imagefiles'), parent = image.parentNode,
input = document.createElement('input');
input.id = input.name = "imagefiles";
input.type = 'file';
parent.replaceChild(input, image);
const node = new DOMParser().parseFromString(html, 'text/html').body.childNodes[0];
document.getElementById(id).replaceWith(node);
let element = document.getElementById("imagefiles");
element.insertAdjacentHTML("afterend","<input type='file' name='imagefiles' id='imagefiles' />");
element.parentNode.removeChild(element);
多年后。现在有一个 childNode.replaceWith() 但它并不严格等同于 JQuery replaceWith(); 也不兼容IE
上面的代码从给定的 HTML 创建一个文档片段,并将其插入到 DOM 中的原始元素之后,然后删除原始元素,有效地替换它。
https://developer.mozilla.org/en-US/docs/Web/API/ChildNode/replaceWith