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);