zoukankan      html  css  js  c++  java
  • jqueryaddoptionselect

    Working Example

    The following is an example showing an already populated select. Clicking the "Add option" button adds a new option to the end of the select and makes it the selected one. Clicking "Replace options" replaces them with a new set of options and then selects the "Green" one.

    Note that the above example will not work if you are reading this in a feed reader. In this case click through to view this post in a web browser.

    Adding a single option - by appending HTML

    Adding a single option can be done by appending HTML to the select box. The select in the above example has an id of "example" i.e. <select id="example"> and using this method adding a new option by appending HTML can look like this:

    1 $('#example').append('<option value="foo" selected="selected">Foo</option>');

    This newly added option will be the selected option; to change this behavior remove the selected="selected" part.

    Adding a single option - by appending a new option - method 1

    To avoid having to write and append HTML and stick with a more Javascript approach the new option can be appended with jQuery by creating a new option object. This next example does not work correctly in Internet Explorer; it will add the new option but only the value and not display any text.

    1 $('#example').append(new Option('Foo', 'foo', true, true));

    The true, true part at the end will make this item the selected one.

    Adding a single option - by appending a new option - method 2

    This method gets a handle to the options and adds a new option to the array of options. This does work in Internet Explorer and is the more traditional Javascript way of adding options.

    1 var options = $('#example').attr('options');
    2 options[options.length] = new Option('Foo', 'foo', true, true);

    Adding multiple options

    Using the final method above this last example shows how to replace the existing set of options with a new set, which may have been retrieved from an AJAX call or similar.

    01 var newOptions = {
    02     'red' : 'Red',
    03     'blue' : 'Blue',
    04     'green' : 'Green',
    05     'yellow' : 'Yellow'
    06 };
    07 var selectedOption = 'green';
    08  
    09 var select = $('#example');
    10 if(select.prop) {
    11   var options = select.prop('options');
    12 }
    13 else {
    14   var options = select.attr('options');
    15 }
    16 $('option', select).remove();
    17  
    18 $.each(newOptions, function(val, text) {
    19     options[options.length] = new Option(text, val);
    20 });
    21 select.val(selectedOption);

    Lines 1 to 7 define the new options with an associative array and the one which will be selected. This is what might have been retrieved from an AJAX call.

    Lines 9 to 15 cache a handle to #example and its options. Note that from jQuery 1.6 you can't get a handle to the options using .attr('options') but it can be done with .prop('options') instead. This is why there's a test to see if .prop() is available.

    Line 16 removes all the existing options.

    Lines 18 to 20 loop through the new options and add them to the select box.

    And finally line 21 sets the selected option.

    Alternative methods

    There are some alternative methods to adding options to a select box with jQuery using various plug-ins and I may look at these in a future post.

    http://www.electrictoolbox.com/jquery-add-option-select-jquery/

  • 相关阅读:
    ubuntu配置bridge网桥
    openstack 手动安装版 功能测试
    BC一周年B
    重构摘要11_处理概括关系
    深入浅出Redis(二)高级特性:事务
    补:小玩文件1-统计文本文件里的字符个数
    【C】字符串,字符和字节(C与指针第9章)
    怎样对报表的參数控件赋值
    POJ-2240 -Arbitrage(Bellman)
    ExtJS学习-----------Ext.Object,ExtJS对javascript中的Object的扩展
  • 原文地址:https://www.cnblogs.com/leshang/p/2054318.html
Copyright © 2011-2022 走看看