如果我选择的元素的值与其标签不同,如何将所有标签替换为相应的values
?
其次,如何在不使用任何框架的情况下按字母顺序对列表进行排序?
输入:
<select name="options" >
<option value="apple">Fruit</option>
<option value="rye">Bread</option>
<option value="beer">Beverage</option>
</select>
输出:
<select name="options" >
<option value="apple">apple</option>
<option value="beer">beer</option>
<option value="rye">rye</option>
</select>
答案 0 :(得分:3)
当然,使用getElementsByTagName()
和innerHTML
:
var allOptions = document.getElementsByTagName("option");
for (var i=0; i<allOptions.length; i++) {
allOptions[i].innerHTML = allOptions[i].value;
}
要按字母顺序对选项排序,请参阅:Javascript to sort contents of select element
答案 1 :(得分:0)
如果您希望它们相同,则可以省略value
属性 - option
标记内的字符串将作为值发送到服务器。看看这里:http://www.w3schools.com/tags/att_option_value.asp。
答案 2 :(得分:0)
你可以这样做:
<select name="options" >
<option value="apple">Fruit</option>
<option value="rye">Bread</option>
<option value="beer">Beverage</option>
</select>
<script>
var options = document.getElementsByName("options")[0].querySelectorAll("option");
Array.prototype.slice.call(options).map(function (option) {
option.innerHTML = option.value;
});
</script>
答案 3 :(得分:0)
您可以将其封装在一个函数中,以便对您的选择进行排序,并在您删除或添加任何元素时对其进行排序。
该功能将是这样的:
REPAIR TABLE `lv_sessions`
你应该这样称呼:
function sortSelect(selElem) {
var tmpAry = new Array();
for (var i=0;i<selElem.options.length;i++) {
tmpAry[i] = new Array();
tmpAry[i][0] = selElem.options[i].text;
tmpAry[i][1] = selElem.options[i].value;
}
tmpAry.sort();
while (selElem.options.length > 0) {
selElem.options[0] = null;
}
for (var i=0;i<tmpAry.length;i++) {
var op = new Option(tmpAry[i][0], tmpAry[i][1]);
selElem.options[i] = op;
}
return;
}