JavaScript测试div元素是否包含文本

3
1. <div id="div_Msg"> Test the div </div>
2. <div id="div_Msg"> </div>

在第一个实例中,div中有文本。在第二个实例中没有文本。使用JavaScript如何测试div中是否有文本。

2个回答

7
如果你正在使用jQuery,你可以像这样操作:
if($.trim($('#div_Msg').text()) != "") {
    // Code here
}

只使用纯JavaScript,可以这样做:

if(document.getElementById("div_Msg").innerHTML.replace(/^\s*/, "").replace(/\s*$/, "") != "") {
    // Code here
}

两种情况都会获取文本并删除字符串开头和结尾的空格,然后将其与空字符串进行比较。


去掉空格真的必要吗?这样可以有效地工作:如果($('#div_Msg').text()) {} - Graham Morley
在这个例子中,没有文本的 div 里有一个空格。trim 去掉了这个空格。如果你确定不会有空白字符,那么就不需要使用 trim。 - dontangg

0
如果使用 jQuery,您可以这样做:
$.trim($('#div_Msg').text());

注意:元素不能拥有相同的id


那不起作用。在 div 中有一个空格,因此有一个 nextnode。至少在某些浏览器中是这样。 - Mark Baijens
正如@Mark所说,您需要在检查空字符串之前对该值进行$.trim()处理:if ($.trim($('#div_Msg').text()) != '') { .. - Orbling
如果($('[id$=div_Msg]').text() == null) { alert("是的,文本不存在"); } - Pinu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接