我为添加attr
编写了此代码,以便在index
变量上定义了值的选项元素:
$(document).ready(function (){
$('option').each(function() {
var index = '1';
if($(this).attr('value') == index)
$(this).attr('selected','selected');
});
});
如何为每个在index
变量上列出值的元素添加attr。像这样:
var index = '1,2,5,8,7,9';
if($(this).attr('value') == index)
...
更新: 这是我的HTML代码:
<select name="category[]" multiple="multiple" id="category">
<option class="level-0" value="1">Jobs</option>
<option class="level-1" value="24">CSS</option>
<option class="level-0" value="5">Products</option>
</select>
答案 0 :(得分:4)
$('#category option').each(function() {
var index = [1,2,5,8,7,9],
value = parseInt( this.value, 10); // convert the value to integer
if($.inArray(value, index) >= 0)
$(this).attr('selected','selected'); //or, $(this).prop('selected', true);
});
的 Working sample 强> 的
$('#category option').each(function() {
var index = '1,2,5,8,7,9',
value = this.value;
if(index.indexOf(value) >= 0)
$(this).attr('selected','selected'); //or, $(this).prop('selected', true);
});
的 Working sample 强> 的
filter()
var index = '1,2,5,8,7,9';
$('#category option').filter(function() {
return index.indexOf(this.value) >= 0;
}).attr('selected', 'selected');
的 Working sample 强> 的
.attr('selected', callback)
var index = '1,2,5,8,7,9';
$('#category option').attr('selected', function(i, val) {
if( index.indexOf( this.value) >= 0 )
return 'selected';
})
的 Working sample 强> 的
答案 1 :(得分:2)
将值组合到一个数组中,然后使用本机js数组indexOf
方法:
var index = [1,2,5,8,7,9];
if( index.indexOf( $(this).val() ) > -1) {
//...
}
<小时/> 要对多个元素执行此操作,请使用
.each()
:
var index = [1,2,5,8,7,9];
$("#category option").each( function() {
if( index.indexOf( $(this).val() ) > -1) {
$(this).prop('selected', true);
}
});
答案 2 :(得分:1)
您无需迭代option
s
$("select").each(function(){
var index = $(this).val();
if($.inArray([1,2,5,8,7,9], index) > -1)
$(this).prop("selectedIndex", index); //set selected index
}
}
答案 3 :(得分:1)
使用select
,您可以使用jQuery更简单。
你可以这样做:
$("#select-id").val(value);
// eg: $("#select-id").val('5'); will make the option whose value is 5 to be selected.
的 Check the demo. 强> 的
答案 4 :(得分:1)
如果您只想使用index
作为逗号分隔字符串的当前设置快速解决方案,请尝试以下操作:
$(this).prop('selected',
(new RegExp('('+index.split(',').join('|')+')'))
.test(this.value)
);