我正在尝试在selected value中找到array,但到目前为止我没有尝试过:



var array = [0, 74];
$('select').change(function() {
  var selected = $('select option:selected').val();

  if ($.inArray(selected, array) != -1) {
    alert('found');
  } else {
    alert('not found');
  }

});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<select>
  <option value="0" selected="selected">----</option>
  <option value="59">ss</option>
  <option value="61">aa</option>
  <option value="62">zz</option>
  <option value="60">yy</option>
  <option value="74">xx</option>
</select>





它与$.each一起工作,但我不想使用任何循环,我的目标是通过inArray来实现。如果选择的值是074,则应提醒found,但不起作用。

最佳答案

val返回字符串,并且inArray进行严格比较



var array = [0, 74];
$('select').change(function() {
  var selected = $('select option:selected').val();

  // convert to a number
  if ($.inArray(+selected, array) != -1) {
    alert('found');
  } else {
    alert('not found');
  }

});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<select>
  <option value="0" selected="selected">----</option>
  <option value="59">ss</option>
  <option value="61">aa</option>
  <option value="62">zz</option>
  <option value="60">yy</option>
  <option value="74">xx</option>
</select>

关于javascript - jQuery inArray找不到值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47003913/

10-12 15:13