$('#sellist option').each(function(index) {
var str ='4/5/8';
var substr = str.split('/');
if (substr[0] == $(this).attr('value')) {
$(this).attr('selected','selected');
alert('hi'); ///For check
}
});
一切正常,alert
被解雇了。我在控制台中没有任何错误。但我没有选择#sellist option
。我的问题是什么感谢。
答案 0 :(得分:14)
用prop替换attr。
$('#element').prop('selected', true);
答案 1 :(得分:3)
您的代码运行正常。它只是选择数组的第一个元素4
,因为您没有循环遍历数组,只需使用substr[0]
来获取第一个值。
要查看它是否有效,我将初始值更改为7
:
$('#sellist option').each(function(index) {
var str = "7/5/8";
var substr = str.split('/');
if (substr[0] == $(this).val()) {
$(this).attr('selected', 'selected');
alert($(this).val()); ///For check
}
});
OP澄清他想围绕数组
要循环遍历数组并选择多重选择中的每个值,请使用:
$('#sellist option').each(function(index) {
var str = "4/5/8";
var substr = str.split('/');
for (var i = 0; i < substr.length; i++) {
if (substr[i] == $(this).val()) {
$(this).attr('selected', 'selected');
}
}
});
答案 2 :(得分:1)
$(this).attr('selected','selected');
应替换为:
$(this).attr('selected', true);
答案 3 :(得分:1)
如果您想要选择一个选项,例如,您希望选择值为4
的选项,只需执行$('#sellist').val('4');
答案 4 :(得分:0)
你可以这样做
$('#sellist').val($(this).attr('value'));
答案 5 :(得分:0)
$(this).attr('selected', true);
应该为你做的伎俩。
答案 6 :(得分:0)
你可以这样:
var str ='4/5/8';
$.each(str.split('/'), function(i, val) {
$('#sellist option').filter('[value="' + val + '"]').prop('selected', 'selected');
});
上的工作示例