zoukankan      html  css  js  c++  java
  • JavaScript添加(option)选项

     

    可以使用JavaScript动态创建选项,并将它们添加到选择框中。添加选项的方式有很多,第一种方式就是使用如下所示的DOM方法:

    var selectbox = document.getElementById("selLocation");var newOption = document.createElement("option");
    newOption.appendChild(document.createTextNode("Option text"));
    newOption.setAttribute("value","Option value");
    
    selectbox.appendChild(newOption);

    以上代码创建了一个新的<option>元素,然后为它添加了一个文本节点,并设置其value特性,最后将它添加到了选择框中。

    第二种方法是使用Option构造函数来创建新选项,Option构造函数接受两个参数:文本(text)和值(value);第二个参数可选。虽然这个构造函数会创建一个Object的实例,但兼容DOM的浏览器会返回一个<option>元素。我们仍然可以使用appendChild()将新选项加到选择框中。来看下面的例子:

    var newOption =newOption("Option text","Option value");
    selectbox.appendChild(newOption);//在IE中有问题

    这种方式在除IE之外的浏览器中都可以使用。由于存在BUG,IE在这种方式下不能正确设置新选项的文本。

    第三种添加新选项的方式是使用选择框的add()方法。DOM规定这个方法接受两个参数:要添加的新选项将位于新选项之后的选项。如果项在列表最后添加一个选项,应该将第二个参数设置为null。在IE对add()方法的实现中,第二个参数是可选的,而且如果指定,该参数必须是新选项之后选项的索引。兼容DOM的浏览器要求必须指定第二个参数,因此要像编写跨浏览器的代码,就不能值传入一个参数。这时候,为第二个参数传入undefined,就可以在所有浏览器中都将新选项插入到列表最后了。来看一个例子:

    var newOption =newOption("Option text","Option value");
    selectbox.add(newOption,undefined);//最佳方案

    在IE和兼容DOM的浏览器中,上面的代码都可以正常使用。如果你项将新选项添加到其它位置(不是最后一个),就应该使用标准的DOM技术和insertBefore()方法。

  • 相关阅读:
    我给老师发的邮件
    [LeetCode]Sum Root to Leaf Numbers
    [LeetCode]Binary Tree Inorder Traversal
    [LeetCode]Merge Sorted Array
    [LeetCode]Unique Paths II
    [LeetCode]Unique Paths
    [LeetCode]Sort Colors
    [LeetCode]Balanced Binary Tree
    [LeetCode]Valid Palindrome
    [LeetCode]Binary Tree Maximum Path Sum
  • 原文地址:https://www.cnblogs.com/SpringSmallGrass/p/3019842.html
Copyright © 2011-2022 走看看