jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了字符串比较返回false.使用jQuery mobile的奇怪的javascript行为大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我开始用jQuery mobile创建一个todo列表,以便更好地学习它.我正在听这样菜单按钮发来的事件:

@H_50_7@me.SELEctedTarget = me.menuNode.find(".ui-btn").first(); me.menuNode.on("click",".ui-btn",function (E) { var target = $(e.currentTarget),targetText = target.text(); console.debug("Click on'",targetText,"'" ); if(target === me.SELEctedTarget) return; if(targetText == "View To Do "){ core.pub("view:todo"); } else if(targetText == "View Done ") { core.pub("view:done"); } else { me.SELEctedTarget.click(); } me.SELEctedTarget = target; });

由于某种原因,变量targetText在末尾有一个额外的“”空格.我有3个按钮,但第三个按钮有点特别 – 无论如何都不相关 – .

我的问题是我总是得到最后一个条款. targetText永远不会等于“View To Do”或“View Done”.

为什么不“查看完成”==“查看完成”? 〜X(

解决方法

@H_675_18@ 比较失败,因为字符串不相同.所以问题确实是为什么它们不一样?显然,其中一个字符串中的空格不是标准空格字符(Unicode有多个空格),或者其中一个字符串中有一个不可见的字符(Unicode也有这些字符).

所以为了找出发生了什么,我会这样做:

var index;
for (index = 0; index < targetText.length; ++indeX) {
    console.log("char " + index + ": " + targetText.charCodeAt(indeX));
}

…和您的代码中的字符串文字相同(不是重新输入它,而是将其移动到本地然后输出;因为如果您重新键入它,您可能会键入正常空间).比较字符代码的序列,你会发现差异.

大佬总结

以上是大佬教程为你收集整理的字符串比较返回false.使用jQuery mobile的奇怪的javascript行为全部内容,希望文章能够帮你解决字符串比较返回false.使用jQuery mobile的奇怪的javascript行为所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。