代码之家  ›  专栏  ›  技术社区  ›  kevin628 Padmapriya Vishnuvardhan

对于select dom对象,add()和appendchild()是否相同?

  •  4
  • kevin628 Padmapriya Vishnuvardhan  · 技术社区  · 14 年前

    我正在开发一个小型Web应用程序,它可以更改“选择”下拉列表的内容。

    我想知道AppendChild()和Add()是否都能在JavaScript中的Select DOM对象上完成相同的任务?

    
    var someSelect = document.getElementById('select-list');
    var newOption = document.createElement('option');
    someSelect.appendChild(newOption);
    // The above is the same as the following?
    someSelect.add(newOption);
    
    3 回复  |  直到 11 年前
        1
  •  3
  •   ajm    14 年前

    在这种情况下,我相信他们也能完成同样的任务。

    add( ) 通过 HTMLSelectElement interface 专门添加选项到 select 元素和有一些额外的选项(例如,在其中添加新的 option 等)。

    appendChild( ) 将直接附加子节点。

    注意两种方法跨浏览器的不同实现:我认为这将是您最大的痛点。iIRC,IES会在把孩子附在 选择 S,所以你可能想 add 如果这种方法存在,那么它就会重新开始 appendChild .

        2
  •  5
  •   Tim Down    14 年前

    如果要确保在 <select> 最可靠的方法是 options 属性并用其填充 Option 物体。自20世纪90年代末以来,以下久负盛名的方法在所有可编写脚本的浏览器中都有效:

    var options = select.options;
    options[options.length] = new Option("Option text", "option_value");
    
        3
  •  1
  •   Community CDub    8 年前

    我认为它应该是等效的,但是在这里,您可以找到一个问题,当您尝试与选项组合作时,这个问题说明了不同的实现:

    SELECT box: On IE item is added to OptGroup instead of root. FF ok

    当select元素中已经存在组时,ie无法添加新的选项“in the root”。