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

javascript设置使用getElementsById选择元素选项,javascript,Javascript,我有一个表单,在这个表单中,我使用javascript根据属性类型(房屋、公寓等)设置select元素选项。当我使用document.myForm.priceSelect.options访问列表时,它正在工作 我想通过id而不是名称访问它。因为我想将名称与选项一起设置,以便在提交表单时,列表的名称将决定要执行的函数。一些代码可以说明: if(prop_type == 'flat') { document.getElementById('priceRange').setA

我有一个表单,在这个表单中,我使用javascript根据属性类型(房屋、公寓等)设置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");
提前谢谢你

更新:

变更后:(不工作)

简单使用

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

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

dystroy的方法应该有效-看到这个了吗

另一种方法是创建用于创建选项的包装器方法,例如:

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");

Fiddle for the wrapper方法

dystroy的方法应该可以工作-参见此

另一种方法是创建用于创建选项的包装器方法,例如:

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");

Fiddle for the wrapper方法

谢谢,mate:)将尝试它,但不起作用。我更新了上面的代码以显示更改。现在列表中什么都没有显示。谢谢,伙计:)我会试试看的。没用。我更新了上面的代码以显示更改。现在,列表没有显示任何内容。