このコードがオンラインで見つからないことに驚いています!
選択リストの選択したすべてのインデックスにアクセスするにはどうすればよいですか?最初のものだけじゃない?
HTML:
<select name="trends[]" multiple="multiple" id="trends" size="35"></select>
js:
function moveSelectedTrends()
{
var selectedTrends = document.getElementById('trends');
for(var i=0; i < selectedTrends.length; i++)
{
alert(selectedTrends.options[selectedTrends.selectedIndex].value) //ONLY returns the first selected element!
}
}
ループを回避する簡単な方法の1つはQSAです。
[].forEach.call( document.querySelectorAll('#trends :checked') , function(Elm){
alert(Elm.value);
})
:checkedセレクターは、<select>メニューを操作するのに十分スマートです...
selectedTrends.selectedIndex
の代わりにi
を使用し、selected
かどうかをテストします。
function moveSelectedTrends() {
var trends = document.getElementById('trends'), trend, i;
for(i = 0; i < trends.length; i++) {
trend = trends[i];
if (trend.selected) {
alert(trend.value);
}
}
}