Javascript 使用组合框的名称而不是索引设置组合框内的选定值

Javascript 使用组合框的名称而不是索引设置组合框内的选定值,javascript,jquery,Javascript,Jquery,如果我像这样渲染组合框 $('#MyCombo').html('<option value=""></option>'); $.each(mydata, function (i, v) { $('#MyCombo').append('<option value="' + v.PersonId+ '">' + v.PersonName + '</option>'); }); 但在这种情况下,我不知道索引,我只知

如果我像这样渲染组合框

    $('#MyCombo').html('<option value=""></option>');
    $.each(mydata, function (i, v) {
       $('#MyCombo').append('<option value="' + v.PersonId+ '">' + v.PersonName + '</option>');
    });
但在这种情况下,我不知道索引,我只知道名称。

一个简单的答案

$('#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>');
    });
$('#MyCombo').html('';
$。每个(我的数据,函数(i,v){
如果(v.PersonName=='John')
$(“#MyCombo”).append(“”+v.PersonName+“”);
其他的
$(“#MyCombo”).append(“”+v.PersonName+“”);
});

你可以这样做

$('#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>');
    }
};          
$('#MyCombo').html('';
$。每个(我的数据,函数(i,v)
{
如果(v.PersonName=='John')
{
$(“#MyCombo”).append(“”+v.PersonName+“”);
}
其他的
{
$(“#MyCombo”).append(“”+v.PersonName+“”);
}
};          
试试这个

$('#MyCombo').html('<option value=""></option>');
$.each(mydata, function (i, v) {
    $('#MyCombo').append('<option value="' + v.PersonId + '" '+ 
                         (v.PersonName == 'John ')? 'selected ' : '' +'>' + 
                         v.PersonName + '</option>');
});
$('#MyCombo').html('';
$。每个(我的数据,函数(i,v){
$('#MyCombo')。附加(''+
v、 人名+“”);
});
您可以使用该函数。我更喜欢它,而不是编写两次完整的html

var选项=[
{value:'foo',label:'Lorem'},
{值:'bar',标签:'Ipsum'},
{值:'juice',标签:'Orange'}
];
$.each(选项,函数(){
变量选项=$('')
.text(此.label)
.val(该值);
如果(this.value=='bar'){
option.prop('selected','selected');
}
option.appendTo($('select'));
});

您可以很容易地按照

   $('#MyCombo').html('<option value=""></option>');
    $.each(mydata, function (i, v) {
       $('#MyCombo').append('<option value="' + v.PersonId+ '">' + v.PersonName + '</option>');
    });
$('#MyCombo').value = "Jhon'sId"; 
$('#MyCombo').html('';
$。每个(我的数据,函数(i,v){
$(“#MyCombo”).append(“”+v.PersonName+“”);
});
$('MyCombo').value=“Jhon'sId”;

$('option[value=John]')。prop('selected')
@user1765862以下解决方案将帮助您将解决方案屏蔽为答案,以便帮助其他人
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'));
});
   $('#MyCombo').html('<option value=""></option>');
    $.each(mydata, function (i, v) {
       $('#MyCombo').append('<option value="' + v.PersonId+ '">' + v.PersonName + '</option>');
    });
$('#MyCombo').value = "Jhon'sId"; 
$('#MyCombo option').filter(function () { 
    return $(this).html() == "John"; 
}).prop('selected', true);