2010-09-29 1 views
2
<select id="selectId"> 
<option>Please select product ...</option> 
</select> 

я примерить на светлячок и работатьHTML - MOOTOOLS- Добавить опцию, чтобы выбрать окно в IE6

$('selectId').innertHTML = '<option>Test test</option>' 

, но на то, что не работает, как добавить параметр с помощью опции строки, как и выше в т.е.

+1

Вы уверены, что это не ошибка типографии? $ ('selectId'). innertHTML = '' – lock

+0

о, я пытаюсь использовать innerHTML, то же самое, т. е. не работает ~. ~ – Chameron

ответ

3

Используйте Element Class: вместо

new Element('option', { 
    text: 'test option' 
}).inject($('selectId'));​ 

Пример: http://www.jsfiddle.net/EJH5b/

+0

+1. прочитайте docs ppl :) я бы добавил значение 'value: nnn' к передаваемому объекту. вы также можете передать свойство 'selected', как и следовало ожидать. –

0

Если вы собираетесь использовать Mootools, вы должны действительно использовать методы Mootools, а не переключаться между ним и ванильным Javascript. Одно из преимуществ этого заключается в том, что Mootools уже заботится о непоследовательности браузера для вас. Поэтому, если вы игнорируете его методы, вам придется самим позаботиться о них.

Для доступа к свойствам элементов Mootools вы можете использовать методы set и get для любого элемента. Функция доллара ($) возвращает элемент, поэтому вы можете просто установить цепочку и перейти к ней.

//returns selectId's HTML 
var foo = $('selectId').get('html'); 

//Sets the HTML of selectId to <option>Test test</option> 
$('selectId').set('html', '<option>Test test</option>'); // 

В этом случае вам просто нужно использовать комплект.

Одна вещь, о которой вы должны знать, это не добавление опции в поле выбора, но вместо этого заменяет все внутри окна выбора опцией. Следовательно, если вы хотите использовать это, чтобы добавить несколько опций в поле выбора, это не будет работать, поскольку вы каждый раз перезагружаете HTML. Не имеет смысла иметь поле выбора, которое имеет только один параметр, поэтому я предполагаю, что вы пытаетесь добавить параметр, а не заменять все с помощью опции. В этом случае выполните следующие действия:

//get the current options selectId's options 
var options = $('selectId').get('html'); 

//Add your own option onto the end 
options = options + '<option>Test test</option>'; 

//Set the HTML of selectId to whatever is stored in options 
$('selectId').set('html', options); 
+0

Я пробовал, но не работал с ie, спасибо за предложениеetsetsion – Chameron

+0

В этом случае вы пробовали создать совершенно новый флажок с правильными параметрами, удалить старый вариант а затем вставить новый? –

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