使用jquery获取没有注释行的HTML内容

时间:2015-05-14 05:55:47

标签: jquery html css

请查看以下代码。

HTML:

<div>
  <p>sdfsdfsfsf</p>
  <!--<p>testing</p>-->
</div>

JQUERY

$(document).ready(function(){
   alert($("div").html());
});

输出

<p>sdfsdfsfsf</p>
<!--<p>testing</p>-->

据我所知,它只会给出如上所述的输出。我的问题是,无论如何我们可以在没有注释行的情况下获得输出吗?

3 个答案:

答案 0 :(得分:11)

您可以创建一个克隆,然后从中删除所有注释节点(如果您不想修改原始dom)

$(document).ready(function () {
    var $clone = $("div").clone();
    $clone.contents().contents().addBack().filter(function () {
        return this.nodeType == Node.COMMENT_NODE;
    }).remove();
    console.log($clone.html());
});

演示:Fiddle

答案 1 :(得分:0)

尝试像这样的第一个选择器

<script>
$(document).ready(function(){
   alert($("div > p:first").html());
});
</script>

答案 2 :(得分:0)

use .text() method of jQuery

    <div id="anything">
    <p>Any text here...</p>
    <!--<p>testing</p>-->
</div>
$(document).ready(function () {
    var t=$("#anything").text();
    console.log(t);
});

演示:https://jsfiddle.net/6w1nr8km/2/