【问题标题】:Uncomment a HTML node without using jQuery?在不使用 jQuery 的情况下取消注释 HTML 节点?
【发布时间】:2016-05-23 07:37:56
【问题描述】:

在此线程中:Uncomment html code using javascript

我发现线程中的所有解决方案都使用了jQuery。我只是想知道如何在不使用第三方库的情况下在 vanilla javascript 中执行此操作?

这不是How do I get an HTML comment with javascript 的重复问题,该线程讨论了如何查找和删除评论节点,但没有说明如何“取消评论”它。

【问题讨论】:

  • @Quentin 谢谢,我看到他/她的回答,发现它使用了replaceWith方法,这是一个jQuery对象的方法。
  • @Rayon 不重复,帖子讨论了如何查找和删除评论节点,但没有说明如何“取消评论”它。
  • 我想找到它是一项艰巨的任务..更换它应该更容易..虽然我可能是错的:)
  • 也许不是最有效的方法,但是通过使用.innerHTML和正则表达式来解析它?

标签: javascript html


【解决方案1】:

一种方法是将所有<!-- --> 替换为.innerHTML 找到的空字符串。

var content = document.getElementById('content');

content.innerHTML = content.innerHTML.replace('<!--', '').replace('-->', '');
<div id="content">
  <!-- <div>Hello</div> -->
  <h1>
    Title
  </h1>
</div>

【讨论】:

    【解决方案2】:

    试试这个:

    var tr = document.querySelector('table tr');
    var children = tr.childNodes;
    [].slice.call(children).forEach(function(child) {
      if (child.nodeType === 8) {
        var elem = document.createElement('div');
        elem.innerHTML = child.textContent;
        tr.replaceChild( elem.childNodes[0], child );
      }
    });
    <table>
       <tr>
             <td>ABCD</td>
             <td>Logic</td>
             <!-- <td>26538568</td> -->
       </tr>
    </table>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-08
      • 2016-01-19
      • 2015-11-11
      • 2014-07-20
      • 1970-01-01
      • 2013-03-11
      • 2011-07-25
      相关资源
      最近更新 更多