我在比较jQuery中的两个字符串时遇到了一些问题:
var option = "";
$.each(data, function(key, value) {
option += "<option ";
if(selected == value) {
option += "selected";
}
option += ">" + value + "</option>";
});
selected和value是相同的字符串。
是否有另一种方法来比较两个字符串,或者可能是,选择的值和值是不同的类型?
答案 0 :(得分:23)
你必须考虑这个:
==运算符比较两个值,如果值为on则返回true 双方都是平等的。如果这两个值有不同 数据类型(例如,如果一个是数字而另一个是文本 字符串)然后它们都被转换为相同的类型 比较发生。 JavaScript将转换为两者中的任何一个 类型可以转换为其他类型,而无需更改 变量中包含的值(例如,将数字转换为a 文字字符串)。
===运算符执行相同的操作,只有一个小的区别。这个 运算符不会将数据从一种类型转换为另一种类型。它只是 当被比较的变量都相同时返回true 输入并包含相同的值。
答案 1 :(得分:0)
selected.substring(0,4)==value.substring(0,4)
答案 2 :(得分:0)
您是否尝试过localeCompare
方法?
if(selected.localeCompare(value) === 0) {
. . .
}
该方法返回: