javascript选择元素

时间:2011-05-20 08:05:47

标签: javascript

我有一个像这样的选择元素

<select name ="cars">
  <option value="frd"> Ford </option>
  <option value="hdn"> Holden </option>
  <option value="nsn"> Nissan </option>
</select>

我想使用javascript将所选内容设置为“Holden”,而不是按值选择。我怎么能实现这个目标呢?

提前致谢

2 个答案:

答案 0 :(得分:8)

评论后

更新

使用以下内容按文字查找选项并选择

var optionlist = document.getElementById('cars').options;

for (var option = 0; option < optionlist.length; option++ )
{
  if (optionlist[option].text == 'Holden')
  {
    optionlist[option].selected = true;
    break;
  }
}

演示 http://jsfiddle.net/gaby/vQhfq/


原始

如果没有为选项元素指定值属性,则它们将该值视为文本。

我建议您使用id,这样您就可以轻松找到该元素。

<强> HTML

<select name ="cars" id="cars">
  <option> Ford </option>
  <option> Holden </option>
  <option> Nissan </option>
</select>

<强>的javascript

document.getElementById('cars').value = 'Holden';

确保在创建select元素之后运行此代码

演示 http://jsfiddle.net/gaby/Pwb5u/

答案 1 :(得分:1)

要通过文本选择选项,请获取对select的引用,迭代选项,查找带有文本“Holden”的选项,然后将select的 selectedIndex 属性设置为索引选项,或将选项的选中属性设置为true。 e.g。

function setSelectedByText(id, text) {
  var select = document.getElementById(id);
  var options = select && select.options;
  var opt;

  for (var i=0, iLen=options.length; i++)  {
    opt = options[i];
    if (opt.text == text) {
      opt.selected = true;
      // or
      select.selectedIndex = i;
    } 
  }
}

对于记录,select元素的值是所选选项的值,或者,如果所选选项没有值,则为文本。但是,如果选项没有值,IE会出错并返回“”。

另外,如果您不想使用getElementById,可以使用:

var select = document.formName.selectName;

注意到select元素必须具有成功的名称(即,在提交表单时返回其值)。