如何将字符串解析为 html 或者如何通过单击按钮动态添加复杂的 html?
How can I parse a string as html or maybe how can I dynamic add a complex html by clicking a button?
我需要在单击按钮时插入此 html 树
<div class='img-wrapper'> <img id='immagine_preview' width='200px' height='200px' data-id_immagine='1'><button type='button' class='rimuoviImg' ><span class='fa fa-times'></span></button></div>
我试过这段代码,但它 returns 给我一个 body 标签,里面有我的 html。
var stringToHTML = function (str) {
var parser = new DOMParser();
var doc = parser.parseFromString(str, 'text/html');
return doc.body;
};
我需要在上传按钮之前动态添加前面的 html 元素(我使用了一个 before() 方法,里面有 stringToHTML 函数并且它有效)。有更简单的方法吗?因为我了解到 documen.createElement 不适用于复杂的参数。
感谢所有社区在我之前的问题中给予的帮助。
您可以使用模板文字创建一个 html 变量,您可以在其中编写 html 语义,然后您可以使用 insertAdjacentHTML()
您可以将 HTML 附加到元素的内部 HTML:
document.querySelector('button').addEventListener('click', function() {
document.body.innerHTML += `<div class='img-wrapper'> <img id='immagine_preview' width='200px' height='200px' data-id_immagine='1'><button type='button' class='rimuoviImg' ><span class='fa fa-times'></span></button></div>`;
})
<button>Insert HTML</button>
使用 template string to contain the HTML, and when you click the button use insertAdjacentHTML
将其添加到现有元素。
const str = `
<div class="img-wrapper">
<img id="immagine_preview" width="200px" height="200px" data-id_immagine="1">
<button type="button" class="rimuoviImg">
<span class="fa fa-times"></span>
</button>
</div>
`
// Cache the element you want to markup to appear,
// and the button
const div = document.querySelector('div');
const button = document.querySelector('button');
// Add a click listener to the button, and insert
// the markup to the chosen element.
button.addEventListener('click', () => {
div.insertAdjacentHTML('beforeend', str);
});
<button>Click</button>
<div />
我需要在单击按钮时插入此 html 树
<div class='img-wrapper'> <img id='immagine_preview' width='200px' height='200px' data-id_immagine='1'><button type='button' class='rimuoviImg' ><span class='fa fa-times'></span></button></div>
我试过这段代码,但它 returns 给我一个 body 标签,里面有我的 html。
var stringToHTML = function (str) {
var parser = new DOMParser();
var doc = parser.parseFromString(str, 'text/html');
return doc.body;
};
我需要在上传按钮之前动态添加前面的 html 元素(我使用了一个 before() 方法,里面有 stringToHTML 函数并且它有效)。有更简单的方法吗?因为我了解到 documen.createElement 不适用于复杂的参数。
感谢所有社区在我之前的问题中给予的帮助。
您可以使用模板文字创建一个 html 变量,您可以在其中编写 html 语义,然后您可以使用 insertAdjacentHTML()
您可以将 HTML 附加到元素的内部 HTML:
document.querySelector('button').addEventListener('click', function() {
document.body.innerHTML += `<div class='img-wrapper'> <img id='immagine_preview' width='200px' height='200px' data-id_immagine='1'><button type='button' class='rimuoviImg' ><span class='fa fa-times'></span></button></div>`;
})
<button>Insert HTML</button>
使用 template string to contain the HTML, and when you click the button use insertAdjacentHTML
将其添加到现有元素。
const str = `
<div class="img-wrapper">
<img id="immagine_preview" width="200px" height="200px" data-id_immagine="1">
<button type="button" class="rimuoviImg">
<span class="fa fa-times"></span>
</button>
</div>
`
// Cache the element you want to markup to appear,
// and the button
const div = document.querySelector('div');
const button = document.querySelector('button');
// Add a click listener to the button, and insert
// the markup to the chosen element.
button.addEventListener('click', () => {
div.insertAdjacentHTML('beforeend', str);
});
<button>Click</button>
<div />