我希望這不是一個重複的問題,但快速搜索沒有給我任何結果。
我需要動態地創建一個<select multiple="multiple">
元素,使用數據是這樣的:!在知道它的屬性之前,IE是否需要一個要插入DOM的元素?
var _options = [
{
MaterialCombined: '123 - asd',
MaterialName: '123'
},{
MaterialCombined: '143123 - asdqw',
MaterialName: '143123'
}
];
現在,下面的代碼完全在瀏覽器= IE
var select = new Element('select ', {'multiple ': 'multiple ','size ': ((_options.length > 5) ? 5 : _options.length),'class ': 'AF_ddl ','style ': 'width: 250px'});
for (var i = 0; i < _options.length; ++i) {
var option = new Element('option ').update(_options[i].MaterialCombined);
option.value = _options[i].MaterialName;
select.options.add(option);
}
但在IE瀏覽器,它拋出一個異常當試圖撥打add()
對select.options
屬性。這是爲什麼? IE需要將select
插入到DOM中才能操作它嗎?
注意,我確實有它的工作是這樣
var tmp = '';
for(var i = 0; i < _options.length; ++i){
tmp += '<option value="'+_options[i].MaterialName+'">'+_options[i].MaterialCombined+'</option>';
}
var select = new Element('select', {'multiple' : 'multiple', 'size' : ((_options.length > 5) ? 5 : _options.length) , 'class' : 'AF_ddl' , 'style' : 'width:250px'}).update(tmp);
但我真的不喜歡我的處理元素這樣! :(
我正在使用原型 - 不要認爲在基本的DOM中有一個新元素('type',{..properties ..})'元素構造函數:) – 2011-04-29 12:54:04