我有一个由CRM(Netsuite)自动生成的网页,我不控制在相当数量的页面中生成的html。我想删除一些关闭和打开标记,以便对象在同一行中呈现,而不是在彼此之上和之下的行中呈现。
</tr></tbody></table></td>
</tr>
<tr valign="top">
<td width="100%"><table border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr>
我遇到的问题是,执行以下操作会破坏页面上的表单,导致所有按钮失败:
<script type="text/javascript">
$(document).ready(function()
{
var bodyHtml = document.getElementById('content_area').outerHTML;
bodyHtml = bodyHtml.replace('</tr></tbody></table></td>\n</tr>\n<tr
valign="top">\n<td width="100%"><table border="0" cellpadding="0"
cellspacing="0" width="100%"><tbody><tr>','<!-- worked -->');
document.getElementById('content_area').outerHTML = bodyHtml;
});
</script>
是否有另一种方法可以通过javascript删除html标签,而这些标签并不构成dom的其余部分?
答案 0 :(得分:1)
以下代码将以您的评论为例,并在abcdefghijklmnopqrstuvwxyz -'
content 2
td
content 1
td
let contentOne = document.querySelector("table:nth-of-type(1) tr td");
let contentTwo = document.querySelector("table:nth-of-type(2) tr td");
contentOne.insertAdjacentElement('afterend', contentTwo);
tr td {
border: 1px solid black
}
需要注意的几点,您可能想要更改选择器。如果可以,请使用ID。
其次,您可能希望在完成后清空空表/行。