2014-03-06 27 views
4

我的行为有点奇怪Select Box和OptGroup: 我使用OptGroup并尝试在最后添加一个单项,我预计会出OptGroup。 FF做它作为预期,但IE浏览器把它添加到OptGroupSELECT框:将IE项目添加到OptGroup而不是根目录。 FF ok

有了这个代码:fiddle(注:JQuery的只是使用的方法.ready,我不能在我的项目中使用它)

<select id="selectbox"> 
    <optgroup label="optGroup1"> 
     <option>aaaa</option> 
    </optgroup> 
</select> 

$(document).ready(function() { 
    var select = document.getElementById("selectbox"); 
    option = document.createElement('option'); 
    option.value = option.text = "test"; 
    select.add(option); 
}); 

结果是在不同的IE和FF

IE: 个IE result FF: FF result

注意:我使用Javascript,因为我目前使用GWT添加的项目。所以这是GWT向select添加项目的方式。

+0

尝试没有:''[这里](http://jsfiddle.net/MBhRk/ 6 /) –

+0

@GrijeshChauhan那么整点就是有团体...... –

回答

4

在IE和铬This works,因此它应该在FF工作:

$(document).ready(function() { 
var select = document.getElementById("selectbox"); 
option = document.createElement('option'); 
option.value = option.text = "test"; 
select.appendChild(option); 
}); 
+0

是的,它似乎工作,感谢您的反馈。 –

1

实际上,你可以插入后选项组的选项

HTML(用于选项组中添加ID)

<select id="selectbox"> 
    <optgroup label="optGroup1" id="optGroup1"> 
     <option>aaaa</option> 
    </optgroup> 
</select> 

的JavaScript

var optgroup1 = document.getElementById("optGroup1"); 
option = document.createElement('option'); 
option.value = option.text = "test"; 

//insterting "after" 
optgroup1.parentNode.insertBefore(option, optgroup1.nextSibling) 

演示: http://jsfiddle.net/tZ8sz/1/

+0

谢谢我会在GWT中测试它并验证答案。你不认为'add'应该默认工作吗? –

+0

我认为应该。我想微软对此有不同的解释,并且通过“添加”意味着添加到最后一组 –

+0

我最终与巴勃罗的答案一致,因为如果选择组存在或不存在,我不必担心。但显然你的答案也是正确的。非常感谢 –