【发布时间】:2014-10-10 12:56:46
【问题描述】:
无论出于何种原因,一个条件正在返回false,而在我看来,它应该是真的。这只是一个简单的字符串比较; Chrome 做对了。
在IE开发者工具中,我放了一个断点就行了,尝试了不同的东西。这是输出:
调用它的代码是一个 jQueryUI 小部件。这是运行代码的完整块。如果有帮助,我可以发布整个小部件。
this.element.children('option').each(function() {
if ($(this).text() === select.val()) { // Why does this evaluate to false?!?!?
$(this).text(value)
ctl._trigger('select', event, {
item: this
});
return false;
}
});
【问题讨论】:
-
这真的很奇怪。如果您编写一个循环来逐个字符地比较它们会怎样?不是作为问题的解决方案,而只是看看它是否会在特定字符上失败或什么。
-
还有
$(this).text() == "Matched Base Revenue"和select.val() == "Matched Base Revenue"的输出是什么 -
也许如果你为每个字符串尝试
.trim()函数。我曾经在 IE8 中遇到过这个问题(它最终无缘无故地增加了一个额外的空间)。所以$(this).text().trim() === select.val().trim()。您也可以尝试.toString()作为字符串。以防万一。 -
另外,你有没有在另一台机器上复制过这个?这很奇怪,它可能是任何东西。
-
比较它们时使用
==而不是===。
标签: jquery jquery-ui internet-explorer