使用选项索引将选项代码替换为其他代码

时间:2013-08-19 11:57:48

标签: javascript html dom

我有一个下拉列表

<select name="answers[0][]">                            
   <option value="0" >Beredskap</option>                            
   <option value="1" >Förbundsledning</option>                          
   <option value="2" >Förbundsledning stab</option>
   <option value="3" >Ekonomiavdelningen</option>
</select>

我要求的是获取值getElementsByTagName('select')[1],然后将其替换为

<option value="1" disabled >Förbundsledning</option>

原因是列表是自动生成的,所以我需要修改html输出。

我有什么不起作用的是:

document.getElementsByTagName('select')[0]
        .innerHTML.replace('<option value="1" disabled>apple</option>')

5 个答案:

答案 0 :(得分:1)

值为1的选项恰好位于代码中的索引1处,如果始终是其他答案而不是此答案的情况。

如果您不知道生成的选项的顺序,因此不知道要更改的选项的索引,则取决于您是要根据值更改文本还是原文。

你可以这样做:

var options = document.getElementsByTagName("option");
for(var e = 0; e < options.length; e++) {
    //change by text
    if (options[e].text == "Apple") {
        options[e].text = "Förbundsledning";
    }

    //change by value
    if (options[e].value == "1") {
        options[e].text = "Förbundsledning";    
    }
}

答案 1 :(得分:0)

您可以使用jQuery和选择器来查找列表框$('#myListBox')。val();

您可以通过$('#myListBox')轻松更改值.val(“new value”);

您还可以轻松地遍历选项列表并执行任何操作。

$("#id option").each(function()
{
    // add $(this).val() to your list
});

答案 2 :(得分:0)

这个怎么样?

var sel = document.getElementsByTagName('select')[0];
sel.innerHTML = sel.innerHTML.replace('Förbundsledning', 'apple');

http://jsfiddle.net/VxhvF/

答案 3 :(得分:0)

document.getElementsByTagName('select')[0].options[1].text="apple"

[1]是您的选项的索引。 0 = Beredskap,1 =Förbundsledning。

答案 4 :(得分:0)

使用功能;

function select_text_replace(option_text, replace_text) {
    var el = document.getElementsByTagName('select')[0];
    el.innerHTML = el.innerHTML.replace(option_text, replace_text);
};


select_text_replace("Förbundsledning", "apple");
select_text_replace("Ekonomiavdelningen", "apple2");

参见示例:http://jsfiddle.net/sm94N/