2013-10-12 5 views
-2

После моего кода:Изменить содержание варианта с чистым JavaScript

<select> 
    <option value="1">Test</option> 
    <option value="2">Test2</option> 
</select> 

Как изменить с чистым яваскриптом кросса браузером первый «Test» и вторым «test2»?

+0

Изменение только текст или несколько атрибутов? – DevlshOne

+4

@ Thew Почему некоторые люди предлагают jQuery даже для самых маленьких случаев использования, которые можно себе представить? Использование чистого JavaScript не является ни плохим, ни наивным. – ComFreek

+1

@ Thew Этот вопрос касается выбора опции с jQuery, а не изменения текста опции. – Barmar

ответ

1

Вы можете решить эту проблему так:

HTML

<select id="myOptions"> 
    <option value="1">Test</option> 
    <option value="2">Test2</option> 
</select> 

Javascript

function change() { 
    document.getElementById('myOptions').options[0].innerHTML = "New Text"; 
    document.getElementById('myOptions').options[1].innerHTML = "New Text 2"; 

} 

change(); 

Кроме того, здесь демо используется для проверки:

DEMO

http://jsfiddle.net/kBd79/

+0

да, это должно сработать. – ncm

-1

Вы можете просто изменить innerHTML из <option> тега

+1

-1 - Да, вы правы, но сложная часть: как? – ncm

2

Используйте options от select элемента (я дал свой выберите идентификатор someSelect для этой демонстрации:

function alterSelect() { 
    var select = document.getElementById("someSelect"); 
    for (var i = 0; i < select.options.length; i++) { 
     select.options[i].text = "New stuff " + i; 
    } 
} 

Это заменит каждый вариант текст с: Новый материал номер - где номер - номер итерации цикла for. См. демонстрационную версию: http://jsfiddle.net/4PyGC/

+0

да это работает. – ncm

Смежные вопросы