当前位置: 首页 > 面试题库 >

添加选项以使用javascript选择

丁安宜
2023-03-14
问题内容

我希望此javascript在id =“ mainSelect”的选择中创建12到100个选项,因为我不想手动创建所有选项标签。你能给我一些指导吗?谢谢

function selectOptionCreate() {

  var age = 88;
  line = "";
  for (var i = 0; i < 90; i++) {
    line += "<option>";
    line += age + i;
    line += "</option>";
  }

  return line;
}

问题答案:

您可以通过一个简单的for循环来实现:

var min = 12,
    max = 100,
    select = document.getElementById('selectElementId');

for (var i = min; i<=max; i++){
    var opt = document.createElement('option');
    opt.value = i;
    opt.innerHTML = i;
    select.appendChild(opt);
}

JS Perf比较了我和imeVidas的答案,是因为我认为他的表情比我的看起来更容易理解/直观,而且我想知道这将如何转化为实现。根据Chromium14/Ubuntu11.04的说法,其速度要快一些,但其他浏览器/平台的结果可能会有所不同。

*根据OP的评论进行了 *编辑

[如何] [我]将此应用于多个元素?

function populateSelect(target, min, max){
    if (!target){
        return false;
    }
    else {
        var min = min || 0,
            max = max || min + 100;

        select = document.getElementById(target);

        for (var i = min; i<=max; i++){
            var opt = document.createElement('option');
            opt.value = i;
            opt.innerHTML = i;
            select.appendChild(opt);
        }
    }
}
// calling the function with all three values:
populateSelect('selectElementId',12,100);

// calling the function with only the 'id' ('min' and 'max' are set to defaults):
populateSelect('anotherSelect');

// calling the function with the 'id' and the 'min' (the 'max' is set to default):
populateSelect('moreSelects', 50);

最后,(经过相当长的延迟之后),一种方法扩展了原型,HTMLSelectElement以便将populate()函数作为一种方法链接到DOM节点:

HTMLSelectElement.prototype.populate = function (opts) {
    var settings = {};

    settings.min = 0;
    settings.max = settings.min + 100;

    for (var userOpt in opts) {
        if (opts.hasOwnProperty(userOpt)) {
            settings[userOpt] = opts[userOpt];
        }
    }

    for (var i = settings.min; i <= settings.max; i++) {
        this.appendChild(new Option(i, i));
    }
};

document.getElementById('selectElementId').populate({
    'min': 12,
    'max': 40
});


 类似资料:
  • 问题内容: 我想使用css在html中的选择选项之间添加某种空间(填充,边距或其他)。我已经尝试使用类似的东西: 但是没有用。我已经读过,这是可以做到的,但在IE中不起作用。无论如何,即使它无法在IE中运行,我也希望它可以在其他浏览器中运行。 PS:当前正在使用Chrome 问题答案: 选择选项的样式非常有限,因为要在操作系统中的所有应用程序之间保持一致性和一致性,因此浏览器应限制某些基本元素的样

  • 问题内容: 我希望这个问题很简单。 我有一个像这样的普通盒子 我可以获取选定的值(通过使用)和选定项的显示值(通过使用)。 但是,如何在标签中像附加值一样存储呢?我希望能够做类似的事情并获取属性的值(在示例中为3.2)。 问题答案: HTML标记 码 通过使用HTML5中的数据属性,您可以以语法上有效的方式向元素添加额外的数据,该方式也可以从jQuery轻松访问。

  • 我一直在尝试更改选择选项的样式。例如添加颜色和背景似乎可以使用下面的代码。但它不起作用,例如边距:20px,边框或任何东西。一直在尝试不同的东西和JS和JQueary,但我不能让它工作,所有的提示都是欢迎的!:) null null

  • 13.4.2.添加Interval选项 例 13.12. strings.xml,添加Interval选项相关的string-array <?xml version="1.0" encoding="utf-8"?> <resources> ... <!-- --> <string-array name="interval"> <item>Never</item> <item>Fifteen min

  • 问题内容: 我正在使用ng-options在我的角度应用程序中打印表单的所有选项。我直接从数据库中获得了价值,该数据库为我提供了国家列表: 在这里,当页面被加载时,选择不显示任何内容,即没有占位符,而我想打印一个静态值,例如“ anywhere”,而不必将其添加到“国家”列表中。 我已经试过了: 但这没用 有谁知道如何解决这个问题? 谢谢 问题答案: 您总是可以这样做: 这是我的小提琴例子 希望这