【问题标题】:JavaScript will not create/add elements in SafariJavaScript 不会在 Safari 中创建/添加元素
【发布时间】:2013-08-14 02:23:40
【问题描述】:

我有一个 JavaScript 函数,可以在按下按钮时将两个选项添加到选择下拉列表中。但是,它似乎只适用于 Firefox 和 Chrome,而不适用于 Safari。

function ShowNextForm()
{
    if(document.myform.Simulation[0].checked == true)
    {
        var select1 = document.getElementById('Calc_Select');
        if (select1.length == 8)
        {
            var option1a = document.createElement("Option");
            option1a.text = "NIEL (approx.) Fluence";
            option1a.value = "NIEL Fluence*";
            select1.add(option1a, select1.options[select1.length - 1]);
        }
    }
}

谢谢

【问题讨论】:

  • 您是否尝试在下拉列表中的最后一项之前添加新选项?
  • 如果是这样,这适用于您列出的浏览器:jsfiddle.net/2mmAF(我没有费心测试您的代码,因为您没有提供测试环境)
  • 是的,如果选中另一个框并且长度为 10,则会删除新创建的项目。当我按下按钮时,下一个 from 甚至不会加载。
  • 您的代码在相同的浏览器中适用于我:jsfiddle.net/8LCkE
  • 奇怪的是,当我将代码从 .add 更改为 .insertBefore 时,它​​起作用了。感谢您的帮助

标签: javascript html safari


【解决方案1】:

虽然我可以让您的代码在(所有)浏览器中运行 - http://jsfiddle.net/2mmAF/ ,但将代码更改为使用 insertBefore 似乎可以缓解您在使用 Safari 时遇到的一些问题。这是要使用的代码:

var selectElement = document.getElementById('Calc_Select'),
    newOption = document.createElement("option");
newOption.text = "NIEL (approx.) Fluence";
newOption.value = "NIEL Fluence*";

selectElement.add(newOption, selectElement.options[selectElement.options.length - 1]);

演示: http://jsfiddle.net/8LCkE/

【讨论】:

    猜你喜欢
    • 2011-07-03
    • 1970-01-01
    • 2015-11-19
    • 2011-04-27
    • 1970-01-01
    • 1970-01-01
    • 2013-01-09
    • 1970-01-01
    • 2019-09-20
    相关资源
    最近更新 更多