比较el.text()===“;字符串“;即使元素包含“”;字符串”;

Comparing el.text() === "string" results in false, even when element contains "string"

本文关键字:字符串 元素 包含 比较 el text      更新时间:2023-09-26

在下面的代码中,始终执行else而不是if,即使警报告诉我state实际上包含字符串payment

var state = $('.check-state').text();
alert(state); // payment
if (state === "payment")
    alert('hello');
else
    alert('not match')

为什么?

我猜你的HTML看起来有点像这样:

<div class="check-state">
    payment
</div>

然后,.text()将返回><之间的所有内容,包括空白。所以你得到的是"'n payment'n",而不是"payment"

解决方案是使用jQuerys $.trim():修剪掉空白

var state = $.trim($('.check-state').text());

顺便说一句,我建议您使用console.log()而不是alert()进行调试。在大多数浏览器中,这将允许您检测错误的位置,因为您可以清楚地看到空白。