JS将属性添加到字符串

时间:2016-02-10 14:59:58

标签: javascript attributes option

我有一个返回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");
    }
})

2 个答案:

答案 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}));
})