Javascript jQuery:If元素为空,不包括空格和注释
下面的代码检查元素中是否没有内容(不包括空格或换行符)。除了忽略空白外,我还希望它尽可能忽略注释或任何不是HTML标记的内容。我怎样才能做到这一点Javascript jQuery:If元素为空,不包括空格和注释,javascript,jquery,Javascript,Jquery,下面的代码检查元素中是否没有内容(不包括空格或换行符)。除了忽略空白外,我还希望它尽可能忽略注释或任何不是HTML标记的内容。我怎样才能做到这一点 if( $.trim( $("#element").html() ) == '' ) { // do something if empty } 您可以使用元素的textContent属性 textContent属性设置或返回指定节点及其所有子节点的文本内容。但是,注释不被计算在内,因为它不是H
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是的,它是相同的,但看起来更好:)这不只是检查元素是否包含文本吗?我想检查元素是否包含任何节点,但不包含注释和空格。好吧,让我用最简单的方式解释一下:这段代码检查整个元素中的可见文本。包括所有元素子元素中的文本。不包括空格。不包括评论。排除图像。