首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery字符串比较在IE7中的行为不同

jQuery字符串比较在IE7中的行为不同
EN

Stack Overflow用户
提问于 2011-09-20 17:16:35
回答 2查看 650关注 0票数 0

下面的片段与jQuery UI自动完成元素(#search)一起使用。在Firefox、Chrome等浏览器中,它的行为与预期一致,并总是为所选元素返回true。Internet 7中的它不是

代码语言:javascript
复制
$('mySelector').filter(function() {
    if ($(this).text().toLowerCase() == $('#search').val().toLowerCase()) {
         return true;
    }
});

对于任何可能导致这种行为的暗示,我将非常感谢!

编辑:在粘贴了Šime Vidas的尼斯分析函数之后,我再次运行了这个功能,下面是应该返回true的比较结果:

经过进一步的调查。我的比较似乎是正确的(谢天谢地,否则我就需要一个心理医生)。但是filter函数返回任何有效的对象。如果比较正确的话。

编辑:只测试了一切正常的情况。有几个条目在名字和姓氏之间有双空格,这不会导致FF和Chrome中的错误评估,而在IE7中是这样的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-20 17:43:55

在此:

代码语言:javascript
复制
function analyze( str ) {
    var output, i;

    output = 'String: ' + str + ' - Length: ' + str.length + '; ';

    for ( i = 0; i < str.length; i += 1 ) {
        output += str.charCodeAt( i ) + ' ';
    }

    return output;  
}

然后:

代码语言:javascript
复制
alert( analyze( operand1 ) + '\n\n' + analyze( operand2 ) );

现场演示: http://jsfiddle.net/jsZzY/

警报框将显示两个字符串的所有代码点.

票数 2
EN

Stack Overflow用户

发布于 2011-09-20 17:21:44

也许$(this).text() in IE7会返回一些额外的字符。例如,额外的空格、新行(\r\n)等。尝试输出$(this).text()$('#search').val(),并对这两个字符串进行可视化比较。

此外,您还可以尝试添加jQuery.trim函数,等等。如果您从所有垃圾中清除,您的代码应该可以工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7489052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档