【问题标题】:IE11 Can't Tell that Two Strings are EqualIE11 无法判断两个字符串是否相等
【发布时间】: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


【解决方案1】:

$(this).text.match(/[\w ]+/)[0]select.val().match(/[\w ]+/)[0] 返回相同的东西吗?

我相信你们中的一些类似空格的字符不是空格。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-27
相关资源
最近更新 更多