【问题标题】:Remove a tag from the DOM [duplicate]从 DOM 中删除标签 [重复]
【发布时间】:2014-05-28 22:01:54
【问题描述】:

我需要使用 jQuery 或 JavaScript 从 DOM 中删除单个标签。我只需要删除封闭标签,而不是标签内的内容。

remove()detach()empty() 方法无法应用,因为它们也会删除整个内容。

例如:

<table border="1" style="width:300px">
<tr>
  <td>Jill</td>
  <td>Smith</td> 
  <td>50</td>
</tr>
<tr>
  <td>Eve</td>
  <td>Jackson</td> 
  <td>94</td>
</tr>
</table>

只需要删除&lt;table&gt;&lt;/table&gt;

目前的 DOM 是这样的

<table style="width:600px">
<tbody><p> Number  -  Name  -   <br></p>
    <p> 111  -  ABC  -  <br></p>
    <p> 222  -  KLM  -  <br></p>
    <p> 333  -  NOP  - <br></p>
    <p> 444  -  HIJ  -  <br></p>
</tbody></table>

提前谢谢你。

【问题讨论】:

  • 如果您删除了表格元素并将表格行元素留在后面,则文档将无效。你为什么想要那个?
  • 我同意@Quentin。你不应该这样做,但对于这个特定的例子,你可以做类似var table = document.querySelector("table"); table.outerHTML = table.innerHTML;
  • 所有这些表格数据都不需要在段落中表示。现在我把段落放在笼子里。我想删除它。为此,我还需要删除 table 标签。 全部在 DOM 中删除。
  • HTML 现在是什么样子的,您希望它是什么样子?
  • @user3547920 如果您指望&lt;tr&gt;&lt;td&gt; 也被删除,那么使用 .text() 方法提取文本然后在段落中替换如何?这是本意吗?如果你包含了你想要的结果 DOM 将会很有用。

标签: javascript jquery html dom


【解决方案1】:

尝试.unwrap()它,但结果会是一个无效的html,

$('tr').unwrap();

【讨论】:

    【解决方案2】:
    var text=$("table").text();
    $("table").parent().html(text);// now at the place of text come 
    

    【讨论】:

      【解决方案3】:
      $("table").replaceWith($("table").html());
      

      【讨论】:

        【解决方案4】:

        使用 Jquery:

        $('table').each(function(){
            $(this).replaceWith($(this).html());
        });
        

        【讨论】:

          猜你喜欢
          相关资源
          最近更新 更多
          热门标签