作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有一个要在正文中替换的 HTML 元素
即这是 body
<p> some random element </p>
<a href="#" id="dfd32"> some text</a> // this element to replace
<h1> some random element </h1>
现在我希望这个元素被一个元素数组替换
[
<a href="#" id="dsd32dsd"> 23dfsome text12</a>,
<a href="#" id="dfwedwew"> sdfsome text23</a>,
<a href="#" id="dssfd"> somdfse text2</a>
]
被替换后的最终 body 将是
<p> some random element </p>
<a href="#" id="dsd32dsd"> 23dfsome text12</a>
<a href="#" id="dfwedwew"> sdfsome text23</a>
<a href="#" id="dssfd"> somdfse text2</a>
<h1> some random element </h1>
怎么做 ?我试过
replaceWith
但无法做到。
最佳答案
您不能直接插入 NodeList,因为 replaceWith
不接受数组作为参数。
幸运的是有一些方法可以解决这个问题
JavaScript
如果我们使用 spread operator ( ...
) 在我们的带有节点的阵列上, replaceWith()
将按预期插入元素:
// Array to replace
const ar = [];
for (var i = 1; i <= 3; i++) {
let tmp = document.createElement('a');
tmp.innerHTML = 'Link #' + i;
ar.push(tmp);
}
// Get element to replace
const el = document.getElementById('dfd32');
// Insert the array nodes
el.replaceWith(...ar);
<p> some random element </p>
<a href="#" id="dfd32"> some text</a>
<h1> some random element </h1>
replaceWith
确实使用包含 DOM 元素的常规数组:
// Array to replace
const ar = [ $('<a>Link #1</a>'), $('<a>Link #2</a>'), $('<a>Link #3</a>') ];
// Get and replace
$('#dfd32').replaceWith(ar);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p> some random element </p>
<div href="#" id="dfd32"> some text</div>
<h1> some random element </h1>
关于javascript - 如何用多个html元素替换单个html元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68287116/
我是一名优秀的程序员,十分优秀!