【问题标题】:How to check if string is .inarray如何检查字符串是否为.inarray
【发布时间】:2013-09-09 20:51:18
【问题描述】:

如何检查我的数组中是否包含字符串?这是我将数组放在一起的方式...

 // get the select
 var $dd = $('#product-variants');

 if ($dd.length > 0) { // make sure we found the select we were looking for

 // save the selected value
 var selectedVal = $dd.val();

 // get the options and loop through them
 var $options = $('option', $dd);
 var arrVals = [];
 $options.each(function(){
     // push each option value and text into an array
     arrVals.push({
         val: $(this).val(),
         text: $(this).text()
     });
 });
};

我想检查“Kelly Green”是否包含在数组中,如果我想 .show a li

$("#select-by-color-list li#kelly-green").show();

【问题讨论】:

    标签: javascript jquery arrays


    【解决方案1】:

    只要在这里使用$.inArray(),其他答案都是正确的,但是用法是关闭的,应该是:

    if($.inArray('Kelly Green', arrVals) != -1) {
      $("#select-by-color-list li#kelly-green").show();
    }
    

    $.inArray() 返回数组中的 位置(如果它是第一个,则可能是 0...所以它在那里,但 if() 将是错误的)。要检查它是否存在,请使用 != -1,如果找到元素 not,它将返回该值。

    【讨论】:

      【解决方案2】:

      你可以使用jQuery内置的.inArray()方法:

      if($.inArray('Kelly Green', arrVals) != -1) {
          $("#select-by-color-list li#kelly-green").show();
      }
      

      【讨论】:

      • 小心使用这个,检查不正确,应该是if($.inArray('Kelly Green', arrVals) != -1) {0 'll get 0, -1 是你应该检查的。
      • @Nick Craver,你是对的,我已经确定了答案。我很自然地认为 jQuery 不会复制 JS 自己的白痴,而只会返回一个布尔值,指示值的存在。 :)
      【解决方案3】:

      试试这个:

      console.log($.inArray('Kelly Green', arrVals);
      
      if($.inArray('Kelly Green', arrVals)
      {
        $("#select-by-color-list li#kelly-green").show();
      }
      

      可能的欺骗: Need help regarding jQuery $.inArray()

      【讨论】:

      • 你把参数弄错了,是.inArray(value, array)
      • @Noah 和 Tatu,不错的一个!我想得很辛苦!效果很好!非常感谢
      猜你喜欢
      • 1970-01-01
      • 2011-11-25
      • 2012-03-23
      • 2014-09-06
      • 1970-01-01
      相关资源
      最近更新 更多