我在具有未知数量选项的表单上有以下选择框:
<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'];
我想要做的是查看选择框的每个选项,看看我的数组中的元素是否等于它。
将这项付诸实践的最佳方式是什么?
非常感谢您的帮助。
答案 0 :(得分:3)
有一个非常有用的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) { ... }
});
答案 1 :(得分:1)
$('select option').each(function() {
if ($.inArray($(this).val(),checkValArray)>-1) {
// do something
}
});
答案 2 :(得分:1)
您可以使用$ .inArray方法来实现此目标
var checkValArray = ['v1', 'v2', 'v13'];
var options = $('select option');
$.each(options , function(i){
if($.inArray( $(this).val() , checkValArray) > -1){
alert('Match Found');
}
});
检查FIDDLE
答案 3 :(得分:1)
这里没有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);
}
答案 4 :(得分:0)
这应该可以解决问题
var selectedArray = $("select#yourselectid").val();
var equal = $.extend($.extend([], checkValArray), selectedArray).length == checkValArray.length;