如何检查数组中的对象是否等于选项值

How to check whether an object of an array equals an option value

本文关键字:于选项 是否 选项 对象 何检查 检查 数组      更新时间:2023-09-26

我在一个具有未知选项数量的表单上有以下选择框:

<select>
   <option value="v1">v1</option>
   <option value="v2">va2</option>
   <option value="v3">va3</option>
   <option value="v11">v11</option>
   <option value="v12">va12</option>
   <option value="v13">va13</option>
</select>​

我在javascript中定义了以下数组:

var checkValArray = ['v1', 'v2', 'v13'];

我想做的是浏览选择框的每个选项,看看我的数组中的一个元素是否等于它

将其付诸实践的最佳方式是什么?

非常感谢你的帮助。

有一个非常有用的jQuery API方法:$.inArray。所以它应该是这样的:

var optionValue = $('select option:selected').val();
if ($.inArray(optionValue, checkValArray) !== -1) {
  // it's in
}
else {
  // it's not
}

对于多选择器,它可以与以下内容一起使用。。。

$('select option:selected').each(function() {
   if ($.inArray(this.value, checkValArray) !== -1) { ... }
});
$('select option').each(function() {
  if ($.inArray($(this).val(),checkValArray)>-1) {
    // do something
  }
});

您可以使用$.inArray方法来实现此

var checkValArray = ['v1', 'v2', 'v13'];
var options = $('select option');
$.each(options , function(i){
    if($.inArray( $(this).val() , checkValArray) > -1){
       alert('Match Found');
    }
});

检查FIDDLE​

这里有一个没有jQuery的解决方案:

var selectitems = document.getElementsByTagName("select")[0];
var items = selectitems.getElementsByTagName("option");
alert(items.length);
for(var i = 0; i < items.length; i++)
{
    alert(items[i].innerHTML);
}

这应该可以完成

var selectedArray = $("select#yourselectid").val();
var equal = $.extend($.extend([], checkValArray), selectedArray).length == checkValArray.length;