Javascript剥离结束html标签?

时间:2017-12-22 15:31:56

标签: javascript netsuite

我有一个由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的其余部分?

1 个答案:

答案 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。

其次,您可能希望在完成后清空空表/行。