对于每个函数内部的循环,添加选项

时间:2014-05-14 01:32:44

标签: javascript jquery for-loop

代码:获取JSON并创建购物车内容。创建每个产品信息的列表,并为每个产品更新数量

提供所需的表单
   $.ajax({
        url: "myurl",
        type: 'POST',
        dataType: "json"

    }).done(function(response){

        $.each(response,function(k,v){
            //UL this products info list was here

            var otions = '';
            for( i=1; i<20; i++ ){

                options += '<option value="'+i+'">'+i+'</option>';

            }

            var form = '<form action="myurl" method="post" accept-charset="utf-8"><label for="products_qty">Quantity</label>'
            +'<select name="products_qty>'
            +options
            +'</select>'
            +'<input type="hidden" name="row_id" value="17e62166fc8586dfa4d1bc0e1742c08b" />'
            +'<input type="submit" name="submit_item" value="Update"  /></form>';


            $('#formWrapper').append(form);

        });

    });

代码运行良好。在for循环中,我需要将selected = selected添加到特定的选项标记。如何添加它。

可以在for循环中实现if语句吗?

var otions = '';
for( i=1; i<20; i++ )
{
    if(i=7)
    {
        var select = 'selected="selected"';
    }
    options += '<option value="'+i+'" '+select+'>'+i+'</option>';
}

我看过以下链接并尝试在我的apped之前添加他们的东西,没有运气。 set option "selected" attribute from dynamic created option

3 个答案:

答案 0 :(得分:0)

您的代码存在问题:

var otions = '';
for( i=1; i<20; i++ )
{
    if(i=7)
    {
        var select = 'selected="selected"';
    }
    options += '<option value="'+i+'" '+select+'>'+i+'</option>';
}

... select仅存在于if语句中,因为这是您定义它的地方。

所以:

var otions = '';
for( i=1; i<20; i++ )
{
    var select;
    if(i=7)
    {
        select = 'selected="selected"';
    }
    else
    {
        select = "";
    }

    options += '<option value="'+i+'" '+select+'>'+i+'</option>';
}

答案 1 :(得分:0)

尝试此更改,

      var otions = '';
        for( i=1; i<20; i++ ){
            if(i==7){
               options += '<option value="'+i+'" selected="selected">'+i+'</option>';
            }
            else
               options += '<option value="'+i+'" +select+>'+i+'</option>';

        }

答案 2 :(得分:0)

也许这就是你想要的:

var select = i === 7 ? " selected='selected'" : '';
options += "<option value='"+i+"'"+select+'>'+i+'</option>';