2009-09-07 45 views
3

我想在基於AJAX響應的框中快速構建s;即如果responseText的是3,我想建立3個選項:使用jQuery創建<option>即時通訊

<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爲null(頁是空白),並分析它給過程中「南」的:好,在這種情況下,我想用一個簡單的填補:

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

我是一個JS新手,不知道該怎麼做... 請問,你能幫忙嗎?

回答

3

你可以這樣做:

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

希望這有助於。

+0

1.你錯過了最後一個'>'。 2.根據jQuery文檔建議的表單是'$('')'。如果您使用的是XHTML,那麼無關緊要,這是jQuery本身的一個暗示,即您想要創建一個空的元素。 – hobbs 2009-09-07 09:46:17

+0

1.謝謝,修正。 2.我不知道那btw :) – 2009-09-07 10:55:41