Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jQuery识别可能包含注释标记的空元素?_Javascript_Jquery - Fatal编程技术网

Javascript 如何使用jQuery识别可能包含注释标记的空元素?

Javascript 如何使用jQuery识别可能包含注释标记的空元素?,javascript,jquery,Javascript,Jquery,我试图识别一个空元素,该元素可能包含或不包含注释标记和/或空白 以下HTML结构在我使用的环境中很常见: <div class="container container-no-title"> <div id="dnn_ctr6735_ContentPane" class="container-padding DNNAlignright"> <!-- Start_Module_6735 --> <div id="dnn_ctr6735_

我试图识别一个空元素,该元素可能包含或不包含注释标记和/或空白

以下HTML结构在我使用的环境中很常见:

<div class="container container-no-title">
  <div id="dnn_ctr6735_ContentPane" class="container-padding DNNAlignright">
    <!-- Start_Module_6735 -->
    <div id="dnn_ctr6735_ModuleContent">
      <!-- End_Module_6735 -->
    </div>
  </div>
</div>
但这不包括空格或注释标记。我还发现了其他一些涉及空白的问题,但没有任何涉及注释标记的问题,我真的很想让jQuery的这个小片段保持简单

干杯,
Steve

评论不是DOM树的一部分,因此您无法访问它们。

评论不是DOM树的一部分,因此您无法访问它们。

您尝试过:

$('.container-padding > div').each(function() {
    if ($(this).text().match(/^\s*$/)) {
        $(this).parent('.container-padding').remove();
    }
});
甚至

$('.container-padding').each( function() {
    if ($(this).text().match(/^\s*$/)) {
        $(this).remove();
    }
});
您是否尝试过:

$('.container-padding > div').each(function() {
    if ($(this).text().match(/^\s*$/)) {
        $(this).parent('.container-padding').remove();
    }
});
甚至

$('.container-padding').each( function() {
    if ($(this).text().match(/^\s*$/)) {
        $(this).remove();
    }
});

如果我理解正确,空元素应该没有子元素:

$this.children.length==0


jQuery能帮你忽略空白和注释吗?

如果我理解正确,空元素应该没有子元素:

$this.children.length==0


jQuery能帮你忽略空白和注释吗?

很高兴tv的解决方案适合你。还可以使用直接向上的DOM通过检查nodeType值来查找不是元素的节点

例如,在element.childNodes上迭代:

if (element.childNodes[i].nodeType != 1)
// node is not an element (text/whitespace or comment)
或:


查看更多信息。

很高兴电视的解决方案适合您。还可以使用直接向上的DOM通过检查nodeType值来查找不是元素的节点

例如,在element.childNodes上迭代:

if (element.childNodes[i].nodeType != 1)
// node is not an element (text/whitespace or comment)
或:


查看更多信息。

我已经解决了空白部分,但没有解决注释标记。那么为什么不为注释标记添加正则表达式测试并完成它呢?你的意思是如果有注释标记,你不想删除元素吗?在我和你的例子的测试中,这成功地匹配并移除了内部容器。第二种溶液击中了头部的钉子。。。非常感谢。我必须给你充分的信任-这个解决方案提出了另一个问题,但你肯定为这个问题提供了正确的答案…我已经,解决了空白,但是没有处理注释标记。那么为什么不为注释标记添加一个正则表达式测试并完成它呢?你的意思是如果有注释标记,你不想删除元素吗?在我和你的例子的测试中,这成功地匹配并移除了内部容器。第二种溶液击中了头部的钉子。。。非常感谢。我必须给你充分的信任-这个解决方案提出了另一个问题,但你肯定为这个问题提供了正确的答案…这是一个很好的平淡的答案,值得一些掌声,但我不相信没有解决方案!这是一个很好的直截了当的回答,值得一些掌声,但我不敢相信没有解决这个问题的办法!我认为这个想法是,如果它只包含一个空的子项、注释或空格,它应该被删除。我认为这个想法是,如果它只包含一个空的子项、注释或空格,它应该被删除。