在下面的代码中,即使警告告诉我state
确实包含字符串payment
,也始终执行else而不是if。
var state = $('.check-state').text();
alert(state); // payment
if (state === "payment")
alert('hello');
else
alert('not match')
为什么?
答案 0 :(得分:1)
我猜你的HTML看起来像这样:
<div class="check-state">
payment
</div>
然后.text()
将返回>
和<
之间的所有内容,包括空格。所以你得到的是"\n payment\n"
,而不是"payment"
。
解决方案是使用jQuerys $.trim()
:
var state = $.trim($('.check-state').text());
另外,我建议您使用console.log()
代替alert()
进行调试。在大多数浏览器中,这将允许您检测错误的位置,因为您可以清楚地看到空白。