使用jQuery创建一个新的select下拉对象

奥马尔

我正在尝试<select><option...</select>在jQuery中创建一个select()对象。

试过了,但是不会添加选项值和文本:

var photos = [
    '_DSC0153.jpg',
    '_DSC0154.jpg'
];

var dropdown = $("<select>", {
    id: 'selectfile'
    , option: { value: '0', text: photos[0] }
    , option: { value: '1', text: photos[1] }
});
dropdown.appendTo( $('#gallery') );

这个其他版本(动态)甚至不会显示select元素:

var photos = [
    '_DSC0153.jpg',
    '_DSC0154.jpg'
];

var dropdown = $("<select>", {
    id: 'selectfile',
    for (i = 0; i < files.length; i++) {
        option: { value: i, text: photos[i] }
    }
});
dropdown.appendTo( $('#gallery') );
大卫说恢复莫妮卡

我建议以下内容:

var photos = [
    '_DSC0153.jpg',
    '_DSC0154.jpg'
];

// creating the <select> element:
$('<select>', {
    // setting its 'id' property/attribute:
    'id' : 'selectfile'
// in order to append nodes (rather than a string of HTML),
// we use the append() method:
}).append(function () {
    // using Array.prototype.map() to iterate
    // over the given (photos) array, creating a
    // a new array. Using the anonymous function's
    // arguments (el: the array-element itself,
    // i: the index of the array-element) to
    // create new <option> elements using the
    // new Option() Constructor; setting
    // its text (to the filename, el) and
    // value (to the index, i):
    return photos.map(function(el,i){
        return new Option(el, i);
    });
// appending the <select> to the <body>:
}).appendTo('body');

var photos = [
  '_DSC0153.jpg',
  '_DSC0154.jpg'
];

$('<select>', {
  'id': 'selectfile'
}).append(function() {
  return photos.map(function(el, i) {
    return new Option(el, i);
  });
}).appendTo('body');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

外部JS Fiddle演示,用于实验。

但是,如果您希望在<select>-creation阶段设置HTML字符串,则完全有可能:

var photos = [
  '_DSC0153.jpg',
  '_DSC0154.jpg'
];

$('<select>', {
  'id': 'selectfile',

  // using Array.prototype.map() again,
  // iterating over the photos array, creating
  // a new array:
  'html': photos.map(function(el, i) {

    // creating new <option> elements (as above)
    // setting text and values (as before); but
    // but this time we return the 'outerHTML'
    // property of the created <option> element,
    // creating an array of HTML:
    return new Option(el, i).outerHTML;

  // joining the array of HTML together with empty strings:
  }).join('')
}).appendTo('body');

var photos = [
  '_DSC0153.jpg',
  '_DSC0154.jpg'
];

$('<select>', {
  'id': 'selectfile',
  'html': photos.map(function(el, i) {
    return new Option(el, i).outerHTML;
  }).join('')
}).appendTo('body');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

外部JS Fiddle演示,用于实验。

在上面的代码中,join('')不必使用JS Fiddle demoJS Fiddle演示),但是出于个人喜好和习惯的考虑,我倾向于使用它。

参考:

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用jQuery创建一个选择下拉选项的链接

来自分类Dev

从 JSON 对象创建一个新的 jQuery 数组

来自分类Dev

使用jQuery创建一个新的html5视频对象

来自分类Dev

使用每个数组创建一个新对象

来自分类Dev

如何使用 Python 从另一个对象创建一个新的 JSON 对象?

来自分类Dev

创建一个Jquery对象的对象

来自分类Dev

期望创建一个新对象

来自分类Dev

使用jQuery创建一个新的div

来自分类Dev

使用jQuery创建一个新的div

来自分类Dev

创建一个使用对象的jQuery插件

来自分类Dev

复制模板对象以从中创建一个新对象

来自分类Dev

遍历对象数组并创建一个新对象

来自分类Dev

使用另一个(现有)对象创建新对象时会发生什么?

来自分类Dev

使用Java创建的每个新对象,将对象实例变量增加一个

来自分类Dev

Kotlin使用另一个对象作为默认构造函数参数创建新对象

来自分类Dev

使用Java创建的每个新对象,将对象实例变量增加一个

来自分类Dev

创建一个动态下拉列表,使用JQuery从JSON文件加载其数据

来自分类Dev

使用PokeApi创建一个下拉选项列表

来自分类Dev

如何使用下拉框创建一个for循环

来自分类Dev

使用Javascript创建一个下拉div

来自分类Dev

每次使用String时,都会创建一个新的String对象吗?

来自分类Dev

使用jq提取多个字段并创建一个新对象

来自分类Dev

计算json数组对象并使用SUM结果创建一个新数组

来自分类Dev

创建一个新的Date对象或使用JavaScript Date()的setter方法

来自分类Dev

创建一个接受类型对象的通用方法并返回一个新的类型对象

来自分类Dev

如何基于数组和另一个对象创建一个新对象?

来自分类Dev

需要时保留一个对象或创建一个新对象。哪个更好?

来自分类Dev

AngularJS / JavaScript从另一个对象创建一个新对象

来自分类Dev

如何创建一个按钮,使新对象成为 Swift 中的前一个对象?

Related 相关文章

  1. 1

    使用jQuery创建一个选择下拉选项的链接

  2. 2

    从 JSON 对象创建一个新的 jQuery 数组

  3. 3

    使用jQuery创建一个新的html5视频对象

  4. 4

    使用每个数组创建一个新对象

  5. 5

    如何使用 Python 从另一个对象创建一个新的 JSON 对象?

  6. 6

    创建一个Jquery对象的对象

  7. 7

    期望创建一个新对象

  8. 8

    使用jQuery创建一个新的div

  9. 9

    使用jQuery创建一个新的div

  10. 10

    创建一个使用对象的jQuery插件

  11. 11

    复制模板对象以从中创建一个新对象

  12. 12

    遍历对象数组并创建一个新对象

  13. 13

    使用另一个(现有)对象创建新对象时会发生什么?

  14. 14

    使用Java创建的每个新对象,将对象实例变量增加一个

  15. 15

    Kotlin使用另一个对象作为默认构造函数参数创建新对象

  16. 16

    使用Java创建的每个新对象,将对象实例变量增加一个

  17. 17

    创建一个动态下拉列表,使用JQuery从JSON文件加载其数据

  18. 18

    使用PokeApi创建一个下拉选项列表

  19. 19

    如何使用下拉框创建一个for循环

  20. 20

    使用Javascript创建一个下拉div

  21. 21

    每次使用String时,都会创建一个新的String对象吗?

  22. 22

    使用jq提取多个字段并创建一个新对象

  23. 23

    计算json数组对象并使用SUM结果创建一个新数组

  24. 24

    创建一个新的Date对象或使用JavaScript Date()的setter方法

  25. 25

    创建一个接受类型对象的通用方法并返回一个新的类型对象

  26. 26

    如何基于数组和另一个对象创建一个新对象?

  27. 27

    需要时保留一个对象或创建一个新对象。哪个更好?

  28. 28

    AngularJS / JavaScript从另一个对象创建一个新对象

  29. 29

    如何创建一个按钮,使新对象成为 Swift 中的前一个对象?

热门标签

归档