javascript设置使用getElementById选择元素选项

时间:2012-11-09 14:57:15

标签: javascript

我有一个表单,我使用javascript根据属性类型(house,flat等)设置select元素选项。当我使用document.myForm.priceSelect.options访问列表时,它现在正在工作。

我想通过id而不是名称来访问它。因为我还想设置名称以及选项,以便在提交表单时,列表的名称将决定要执行的函数。一些代码来说明:

 if(prop_type == 'flat') {
            document.getElementById('priceRange').setAttribute('name', 'flatRange');
            .....

现在我在这里更改名为priceRange的选择列表的名称。如何使用id而不是如下所示的名称更改选项:

document.searchForm.priceRange.options[1]=new Option("10000 - 20000", "10000 - 20000");

提前谢谢你......

更新:

变更后:(不工作)

 if(prop_type == 'flat') {
            document.getElementById('priceRange').setAttribute('name', 'flatRange');
            document.getElementById('priceRange').options.length=0;
            document.getElementById('priceRange').options[0]=new Option("", "");
            document.getElementById('priceRange').options[1]=new Option("10000 - 20000", "10000 - 20000");

2 个答案:

答案 0 :(得分:1)

只需使用

document.getElementById(yourId).options[1]=new Option("10000 - 20000", "10000 - 20000");

答案 1 :(得分:0)

dystroy的方法应该有效 - 请参阅此fiddle here

另一种方法是为选项创建创建一个包装器方法,例如:

function createOption(objSelect, optText, optValue){
  var objOption = document.createElement("option");
  objOption.text = optText;
  objOption.value = optValue;

  if(document.all && !window.opera){
    objSelect.add(objOption);
  }
  else
  {
    objSelect.add(objOption, null);
  };
}

然后您可以向选择添加选项:

var priceRange=document.getElementById('priceRange');
createOption(priceRange, "10000 - 20000", "lowball");

提示包装方法here