如果我像这样渲染组合框
$('#MyCombo').html('<option value=""></option>');
$.each(mydata, function (i, v) {
$('#MyCombo').append('<option value="' + v.PersonId+ '">' + v.PersonName + '</option>');
});
如果v.PersonName == 'John'
P.S。我知道我可以使用它的索引设置值
$('#MyCombo').prop('selectedIndex', 2);
但在这种情况下,我不知道索引,我只知道名字。
答案 0 :(得分:2)
试试这个。
$('#MyCombo').html('<option value=""></option>');
$.each(mydata, function (i, v) {
$('#MyCombo').append('<option value="' + v.PersonId + '" '+
(v.PersonName == 'John ')? 'selected ' : '' +'>' +
v.PersonName + '</option>');
});
答案 1 :(得分:2)
您可以轻松地执行此操作
$('#MyCombo').html('<option value=""></option>');
$.each(mydata, function (i, v) {
$('#MyCombo').append('<option value="' + v.PersonId+ '">' + v.PersonName + '</option>');
});
$('#MyCombo').value = "Jhon'sId";
答案 2 :(得分:1)
您可以使用jQuery.prop()功能。我喜欢这个,然后再写两次完整的HTML。
var options = [
{ value: 'foo', label: 'Lorem' },
{ value: 'bar', label: 'Ipsum' },
{ value: 'juice', label: 'Orange' }
];
$.each(options, function() {
var option = $('<option/>')
.text(this.label)
.val(this.value);
if ( this.value == 'bar' ) {
option.prop('selected', 'selected');
}
option.appendTo($('select'));
});
答案 3 :(得分:1)
$('#MyCombo option').filter(function () {
return $(this).html() == "John";
}).prop('selected', true);
答案 4 :(得分:0)
一个简单的答案
$('#MyCombo').html('<option value=""></option>');
$.each(mydata, function (i, v) {
if (v.PersonName== 'John')
$('#MyCombo').append('<option selected value="' + v.PersonId+ '">' + v.PersonName + '</option>');
else
$('#MyCombo').append('<option value="' + v.PersonId+ '">' + v.PersonName + '</option>');
});
答案 5 :(得分:0)
你可以这样做
$('#MyCombo').html('<option value=""></option>');
$.each(mydata, function (i, v)
{
if(v.PersonName == 'John')
{
$('#MyCombo').append('<option value="' + v.PersonId + '"selected>' + v.PersonName + '</option>');
}
else
{
$('#MyCombo').append('<option value="' + v.PersonId + '">' + v.PersonName + '</option>');
}
};