Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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:If元素为空,不包括空格和注释_Javascript_Jquery - Fatal编程技术网

Javascript jQuery:If元素为空,不包括空格和注释

Javascript jQuery:If元素为空,不包括空格和注释,javascript,jquery,Javascript,Jquery,下面的代码检查元素中是否没有内容(不包括空格或换行符)。除了忽略空白外,我还希望它尽可能忽略注释或任何不是HTML标记的内容。我怎样才能做到这一点 if( $.trim( $("#element").html() ) == '' ) { // do something if empty } 您可以使用元素的textContent属性 textContent属性设置或返回指定节点及其所有子节点的文本内容。但是,注释不被计算在内,因为它不是H

下面的代码检查元素中是否没有内容(不包括空格或换行符)。除了忽略空白外,我还希望它尽可能忽略注释或任何不是HTML标记的内容。我怎样才能做到这一点

        if( $.trim( $("#element").html() ) == '' ) {
            // do something if empty
        }

您可以使用元素的
textContent
属性

textContent
属性设置或返回指定节点及其所有子节点的文本内容。但是,注释不被计算在内,因为它不是HTML标记

请参见示例代码:

$(文档).ready(函数(){
警报(“DIV1:+$.trim($(“#DIV1”).text());
警报(“DIV2:+$.trim($(“#DIV2”).text());
});

根据您的评论,此div内部有一些内容

我想检查元素是否包含任何节点,但不包含注释和空格

要确定元素是否包含不包含注释的节点,请使用

若要确定元素是否包含不包含空格的文本内容,请使用

结合这些,您的代码将成为:

if($('#element').children().length>0 && $.trim($("#element").text())!=='')
由于非零数字为,空字符串为,因此可以将其缩短为:

if($('#element').children().length && !$.trim($("#element").text()))
在下面的示例中,
element2
是唯一符合条件的元素(仅带空格的非注释节点):

功能测试(el){
if($(el).children().length&!$.trim($(el).text())){
返回“成功-没有可见文本的子级”;
}
否则{
返回“失败-”+
$(el).children().length+'children-'+
$(el.text();
}
}
$('body').append('element1:'+test('element1')+'

'); $('body').append('p>element2:'+test('element2')+'

'); $('body').append('p>element3:'+test('element3')+'

')

乱数假文
多洛
坐在椅子上



jQuery的
text()
函数将textContent用于元素节点。因此
$.trim($(“#div1”).get(0).textContent)
相当于
$.trim($(“#div1”).text()
@RickHitchcock是的,它是相同的,但看起来更好:)这不只是检查元素是否包含文本吗?我想检查元素是否包含任何节点,但不包含注释和空格。好吧,让我用最简单的方式解释一下:这段代码检查整个元素中的可见文本。包括所有元素子元素中的文本。不包括空格。不包括评论。排除图像。