我将HTML作为字符串,例如:
<p>some text</p><p>some more text</p><table><th>....</table>
我希望将表格包装在div标签中-表格可以在任何地方。
我已经考虑过使用replace
,但是我必须同时替换开始表标签和结束表标签。
有没有办法包装表格元素?
仅适用于Vanilla JS。
答案 0 :(得分:1)
如果在浏览器中执行此操作,则可以使用DOM方法。 DOM是比regex更好的html解析器
const str = `<p>some text</p><p>some more text</p><table><tr><th>Test</th></tr></table>`
const tmp = document.createElement('div')
tmp.innerHTML = str;
Array.from(tmp.querySelectorAll('table')).forEach(function(table){
const div = document.createElement('div');
table.parentNode.insertBefore(div, table);
div.appendChild(table);
});
const modifiedStr = tmp.innerHTML;
console.log(modifiedStr );
document.body.innerHTML = modifiedStr;
div > table{ color: red}