Jquery在for循环中创建选项元素?

时间:2012-08-13 13:09:33

标签: jquery

我的select下拉列表最初是使用php创建的,如下所示:

  <select id="cupcake-amt" name="amt">
         <?php for($i=0; $i<50; $i++) : ?>
          <option value="<?php echo $i; ?>"><?php echo $i; ?></option>
          <?php endfor; ?>
  </select>

如何创建一个jquery函数,将选项重建为不同的数量。所以我不想要50个选项。什么是最好的方法?

3 个答案:

答案 0 :(得分:1)

如果你想在jQuery中重建12个项目的选项,你可以这样做

<script type="text/javascript">
   $(function(){
      var options="";
      var numberOfItemsNeeded=12;
      for(var i=1;i<=numberOfItemsNeeded;i++)
      {
         options+="<option value='"+i+"'>"+i+"</option>";
      }       
      $("#cupcake-amt").html(options);        
   });
</script>

工作样本:http://jsfiddle.net/yDh6x/3/

答案 1 :(得分:0)

您可以清空选择..然后使用变量存储选项元素并将其追加到最后。

$('#cupcake-amt').empty(); // <-- empty the select box - so it removes the 50
var x = '';  // <-- variable to store option string
for(i=0;i<theLengthYouWant;i++){  
   x += '<option value="' + i + '">' + i + '</option>';  // <-- store how many options
}
$('#cupcake-amt').append(x);  // <-- append to the select

http://jsfiddle.net/wirey00/BSmKt/

答案 2 :(得分:0)

您可以创建JS功能:

function generator(number, selectId) {
   var options = '';
   for (var i = 0; i < number; i++) {
     options += "<option value="+i+'>'+i+'</option>'
   }
   $('#'+selectId).html(options)
}

然后调用该函数,其中10是应生成的选项数,selectId是目标选择元素的ID。

generator(10, 'target')

DEMO