我正在尝试简化过去几天创建的一些bookmarklet,让人们更容易使用它们。我的一个bookmarklet更改了表单选择字段中的选定选项。我想把它写成:
javascript:(function(){setSelect('yourMom'); ... boringStuffThatThey'llMessUp ...})(); function setSelect(selectThis){moreBoringStuff}
其中“yourMom”是他们可以在网页上选择的选项之一。但是,在HTML中,'yourMom'具有整数值。我的想法是做类似的事情:
function setSelect(selectThis){yourMom = 1; yourSister = 2; yourGirlFriend = 3; ... 东西 ... {if(thisSelect.options [i] .value ==(?)selectThis){... moreStuff ...}}}
这让我需要知道我需要代替(?)selectThis,以便它指向存储在yourMom中的值。
我希望那里的人有道理。
感谢您的帮助。
编辑:
HTML看起来像这样:
<select name="whoDoILikeMost" tabindex="2" class="dropdown">
<option value="1" selected="selected">yourMom</option>
<option value="2">yourSister</option>
<option value="3">yourGirlFriend</option>
</select>
答案 0 :(得分:0)
您可以迭代select元素中的每个选项,并设置值,如果“name”元素与提供的值匹配,如下所示:
function setSelect(name) {
var selectEl = document.getElementById("selectElementName");
for (var i = 0; i < selectEl.options.length; i++) {
if (selectEl.options[i].name == name) {
selectEl.selectedIndex = i;
break;
}
}
}