有没有办法比较两个字符串,其中select和value是不同的类型?

时间:2012-02-27 08:05:36

标签: jquery

我在比较jQuery中的两个字符串时遇到了一些问题:

var option = "";
$.each(data, function(key, value) {
   option += "<option ";
   if(selected == value) {
      option += "selected";
   }
   option += ">" + value + "</option>";
});

selected和value是相同的字符串。

是否有另一种方法来比较两个字符串,或者可能是,选择的值和值是不同的类型?

3 个答案:

答案 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) {
  . . . 
}

该方法返回

    只要字符串相等,
  • 0:
  • -1:如果选中小于
  • 1:如果选择大于