我有一个返回retorno1
的帖子ajax并且为了简单起见我将他们的输出作为字符串值作为ajax发布像示例..然后我需要添加多于1个选项,值为0所以我需要说,如果值为0,则表示所选项目为“NON”,如果其他值则显示并选择它。
我正在使用setAttribute("selected", "selected")
,但我知道这是错误的,那么为此字符串添加属性的正确代码是什么?
var i = 0;
var returno1 = "<option value='21'>Hello</option><option value='22'>Bye</option>";
var pre = retorno1 + '<option value="0">------ N/A ------</option>';
var count = $($.parseHTML(pre)).filter('option').length;
var dep_dr = $("#departamento_drop option:selected").val();
$.each($.parseHTML(pre),function(i,item){
var val_drop =($(item).val());
var text_drop =($(item).html());
if (val_drop == dep_dr){
jQuery("#departamento_drop").html(pre).setAttribute("selected", "selected");
}else if(dep_dr == "0"){
jQuery("#departamento_drop").html(pre).setAttribute("selected", "selected");
}
})
答案 0 :(得分:1)
<强> Working fiddle 强>
尝试使用attr()
或prop()
设置或获取元素属性,请查看以下示例:
jQuery("#departamento_drop").empty();
$.each($.parseHTML(pre),function(i,item){
var current_itme=$(item);
var val_drop =current_itme.val();
var text_drop =current_itme.html();
if (val_drop == dep_dr || dep_dr == "0"){
current_itme=current_itme.attr("selected", "selected");
}
jQuery("#departamento_drop").append(current_itme);
})
希望这有帮助。
答案 1 :(得分:0)
为什么需要使用字符串?使用对象。
var values = [{val:33, title:'Hi'},{val:34, title:'Bue'},{val:0, title:'-------NA-------'}],
selected = 34;
values.forEach(function(item){
$('#dd').append($('<option>', {value:item.val, text:item.title, selected: item.val==selected}));
})