我有以下选择框:
<select multiple="" style="width:266px;" class="text_boxes" name="photography_type[]" id="photography_type">
<option selected="" value="0" label="General photographer
">General photographer
</option>
<option value="1" label="Editorial photographer/news photographer
">Editorial photographer/news photographer
</option>
<option value="2" label="Photojournalist">Photojournalist
</option>
</select>
以下在IE中不起作用
function removeSelection(id){
$('#photography_type :selected').each(function(i, selected){
$(selected).options[id].selected = false;
});
}
任何解决方案?
答案 0 :(得分:1)
尝试使用.prop
取消设置选择
这将取消设置所有选定的选项(fiddle):
$('#photography_type :selected').each(function(i, opt) {
$(opt).prop('selected', false)
})
这将只删除一个选定元素(fiddle):
function removeSelection(id){
$('#photography_type option').eq(id).prop('selected', false)
}
答案 1 :(得分:1)
selected
是DOM
对象的属性,您尝试使用jQuery
对象调用它。
<强> Live Demo 强>
function removeSelection(id) {
$('#photography_type :selected').each(function (i, selected) {
selected.selected = false;
});
}
或者简单地说,不使用each
在单个语句中执行此操作。
<强> Live Demo 强>
function removeSelection(id) {
$('#photography_type :selected').prop('selected', false);
}
您可以将selectedIndex设置为-1
<强> Live Demo 强>
function removeSelection(id) {
$('#photography_type')[0].selectedIndex = -1;
}
答案 2 :(得分:1)
不要在相对昂贵的过程中取消选择每个选项,而是执行此操作:
document.getElementById('photography_type').selectedIndex = -1;
Vanilla JS功能强大且效率极高,您应该使用它。 ;)