如何使用其值替换选择的所有选项标签?

时间:2012-02-08 18:18:59

标签: javascript html

如果我选择的元素的值与其标签不同,如何将所有标签替换为相应的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>

4 个答案:

答案 0 :(得分:3)

当然,使用getElementsByTagName()innerHTML

var allOptions = document.getElementsByTagName("option");
for (var i=0; i<allOptions.length; i++) {
   allOptions[i].innerHTML = allOptions[i].value;
}

Here it is in action.

要按字母顺序对选项排序,请参阅: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;
}