第一次点击选择标记时如何附加选项?

时间:2014-01-08 09:05:24

标签: javascript jquery select append option

第一次点击选择标记时如何附加选项?这意味着select标签在第一次点击之前没有选项。我尝试下面的代码,但选项不显示,直到第二次点击,我希望选项立即显示我第一次点击选择标记。请帮帮我。

<select id="cbVoice" onclick="ClickMe()"></select>

function ClickMe(){
if($('#cbVoice > option').length == 0){ 
var TheOptions = "<option>Option 1</option><option>Option 2</option><option>Option 3</option><option>Option 4</option>";
        $('#cbVoice').html(TheOptions);
}

}

4 个答案:

答案 0 :(得分:0)

试试这个

function ClickMe(){
if($('#cbVoice > option').length == 0){ 
var TheOptions = "<option>Option 1</option><option>Option 2</option><option>Option 3</option><option>Option 4</option>";
        $('#cbVoice').empty().append(TheOptions);
}

}

DEMO

答案 1 :(得分:0)

$.each(selectValues, function(key, value) {   
     $('#mySelect')
         .append($("<option></option>")
         .attr("value",key)
         .text(value)); 
});

重复What is the best way to add options to a select from an array with jQuery?

答案 2 :(得分:0)

试试这个:

<select id="cbVoice"></select>

<script type="text/javascript">
var $cbVoice = $("#cbVoice");
$cbVoice.on('mousedown', function(e) {
    if ($('option', $cbVoice).length == 0) {
        $cbVoice.html('<option>Option 1</option><option>Option 2</option><option>Option 3</option><option>Option 4</option>');
    }
});
</script>

演示:http://jsfiddle.net/eeSGN/

答案 3 :(得分:0)

您可以将mousedownone()一起使用,并为options使用简单的循环:

$('#cbVoice').one('mousedown', function() {
   var numOfOpts = 4, opts = [];
   for (var i = 1; i <= numOfOpts; i++) {
       opts.push( $('<option>', { text: 'Option ' + i }) );
   }
   $(this).append(opts);
});

Here's a fiddle