我有一个像这样的选择元素
<select name ="cars">
<option value="frd"> Ford </option>
<option value="hdn"> Holden </option>
<option value="nsn"> Nissan </option>
</select>
我想使用javascript将所选内容设置为“Holden”,而不是按值选择。我怎么能实现这个目标呢?
提前致谢
答案 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元素之后运行此代码)
答案 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元素必须具有成功的名称(即,在提交表单时返回其值)。