2013-04-23 117 views
3

我已經搜索了很多關於這個問題的答案,但沒有找到滿意的結果。如何使用Javascript Prototype從多個選擇框中刪除選定的選項?

我有這樣的代碼:

<select name="items[]" size="0" id="feed-items-list" style="width:100%;" multiple=""> 
<option value="a">a</option> 
<option value="b">b</option> 
<option value="c">c</option> 
</select> 

如何刪除所有選定的選項?

謝謝!

+2

你說的「刪除」意味着取消選擇的選項?取消選擇它們?或者將它們從頁面中刪除? – Ian 2013-04-23 13:35:59

+0

我的意思是身體消除。 – stanki 2013-04-23 14:09:11

回答

1

要使用PrototypeJS做到這一點(如您所標記的問題)

$('feed-items-list').select('option:selected').invoke('remove'); 

這將選擇的feed-items-list後裔中的CSS選擇器option:selected元素。然後在該元素上調用remove的具體方法。

如果你只是想伊恩所提及

$('feed-items-list').select('option:selected').each(function(i){ 
    i.selected = false; 
}); 
+0

謝謝@Geek Num 88,效果很好! – stanki 2013-04-24 06:46:34

5

我知道你的標籤爲prototypejs,但我從來沒有用過它,而且用vanilla JS很容易。下面是如何循環的<option> S和看如果他們選擇與否:

var select_element = document.getElementById("feed-items-list"); 
var options = select_element.options; 
var i = options.length; 
while (i--) { 
    var current = options[i]; 
    if (current.selected) { 
     // Do something with the selected option 
    } 
} 

DEMO:http://jsfiddle.net/tFhBb/

如果要物理刪除從頁面的選項,然後使用:

current.parentNode.removeChild(current); 

如果您要取消選擇它們,然後用:

​​
+1

謝謝@Ian,我也試過這個,並且它運行良好。有趣的方法使用parentNode和removeChild。 – stanki 2013-04-24 06:48:14