【问题标题】:Create <option> on the fly with jQuery使用 jQuery 即时创建 <option>
【发布时间】:2010-11-26 04:12:28
【问题描述】:

我想在基于 AJAX 响应的框中动态构建 s;即如果 responseText 为 3,我想构建 3 个选项:

<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>

以下代码正在运行:

$("#PAG_PLACEMENT").change(function(){
            $.ajax({
            type: "post",
            url: "untitled.asp",
            data: "iLanguage=1&iPlacement="+$("#PAG_PLACEMENT").val(),
            success: function(responseText){
                    //alert(parseInt(responseText));
                    opts = parseInt(responseText);
                            var routeSelect = $("#PAG_POSITION").get(0);
                            routeSelect.options.length = 0; //reset to zero length
                            for(var i = 0; i < opts; ++i) {
                            routeSelect.options[i] = new Option(i+1,i+1);
                            }
                    }
            });
    });

但我想“jQueryfy”部分:

var routeSelect = $("#PAG_POSITION").get(0);
    routeSelect.options.length = 0; //reset to zero length
    for(var i = 0; i < opts; ++i) {
    routeSelect.options[i] = new Option(i+1,i+1);
}

更多,有时 responseText 为空(页面为空白),解析它当然会给出“NaN”:好吧,在这种情况下,我想用一个简单的填充:

<option value="0">0<value>

我是 JS 新手,不知道该怎么做... 请问,你能帮忙吗?

【问题讨论】:

    标签: jquery option


    【解决方案1】:

    你可以这样做:

    var routeSelect = $("#PAG_POSITION").get(0);
    
    routeSelect.html(''); //clear-out options
    
    if (isNaN(opts) || opts == 0) {
        //Handles case where your response is invalid or zero
        routeSelect.append($('<option/>').val(0).html(0));
    } else {
        //Add n items to the dropdown
        for(var i = 0; i < opts; ++i) {
            routeSelect.append($('<option/>').val(i).html(i));
        }
    }
    

    希望这会有所帮助。

    【讨论】:

    • 1.你错过了最后的&gt;。 2. 根据 jQuery 文档推荐的形式是$('&lt;option/&gt;'),而不是$('&lt;option&gt;&lt;/option&gt;')。不管你是否使用 XHTML,它是对 jQuery 本身的一个提示,你想要创建一个裸元素。
    • 1.谢谢,已修改。 2. 顺便说一句,我不知道 :)
    猜你喜欢
    • 2012-05-11
    • 2012-01-19
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 2013-08-17
    • 2010-09-11
    • 2018-08-13
    • 1970-01-01
    相关资源
    最近更新 更多