Jquery text() 方法和条件语句不能指定空字符串



myTags.html

<div id="ControlWrapper">
<p>​</p>
<p><br></p>
<p>​​</p>
</div>

myScripts.js

var a  = $("#ControlWrapper").text();
if (a == ""){do something;}else {do something else;}
<div id="ctl00_PlaceHolderMain_txtContent__ControlWrapper_RichHtmlField" class="ms-rtestate-field" style="display: block;" aria-labelledby="ctl00_PlaceHolderMain_txtContent_label">
<p>​</p>
<p><br></p>
<p>​​</p>
</div>

嗨,我的html和javascrpt文件中有上面的代码。

我想从一个元素中获取文本并将其保存在一个变量中,如果它是空的,那么它应该在条件语句中返回false,但不幸的是,它不起作用。

当一个元素中没有文本时,我需要对文本进行压缩。

您可以尝试if (!a) {...}

aundefinednull或为空时,!a给出true

如果您在浏览器中,可以使用console.log('[',a,']');查看a的值。

$(document).ready(function(){
var a = $("#ControlWrapper").text();
console.log(a);
if (!a) {
console.log("true value")
} else {
console.log("false value")
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="ControlWrapper">
<p></p>
<p><br></p>
<p></p>
</div>

该代码准确地注销";"假值";因为在HTML节点子元素内不包括文本。

在我看来,我们可以使用trim()(删除空格)方法来指定如下的javascript条件语句:

myScripts.jsmyDocument.html

function getText() {
var text = $('.element').text();
if (text && text.trim() !== '') {
console.log(text);
} else {
alert("Empty");
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.3/jquery.min.js"></script>
</style>
</head>
<body>

<div class="element" class="element">
</div>
<button onClick="getText()">
Show Text 
</button>

</body>
</html>