複数選択できるリストボックスの値を取得する際に、「options」プロパティを使用した場合と使用しない場合とでは、何か違いなどはあるのでしょうか?
html
1<!DOCTYPE html> 2<html> 3<head> 4<meta charset="UTF-8" /> 5<title>JavaScript本格入門</title> 6</head> 7<body> 8<form> 9 <div> 10 <label for="food">好きな食べ物は?:</label> 11 <select id="food" multiple> 12 <option value="ラーメン">ラーメン</option> 13 <option value="餃子">餃子</option> 14 <option value="焼き肉">焼き肉</option> 15 </select> 16 <input id="btn" type="button" value="送信" /> 17 </div> 18</form> 19<script src="list.js"></script> 20</body> 21</html>
javascript
1document.addEventListener('DOMContentLoaded', function() { 2 var getSelectValue = function(name) { 3 var result = []; 4 var opts = document.getElementById(name).options; 5 console.log(opts); 6 for(var i = 0, len = opts.length; i < len; i++) { 7 var opt = opts.item(i); 8 if (opt.selected) { 9 result.push(opt.value); 10 } 11 } 12 return result; 13 }; 14 15 document.getElementById('btn').addEventListener('click', function() { 16 window.alert(getSelectValue('food')); 17 }, false); 18}, false);
上記コードの「 var opts = document.getElementById(name).options;」の部分で、.optionsとしているのですが、これを取り除いた場合でも、.optionsとした場合と同じように動作します。何か2つの場合において、違いやメリット、デメリットなどがありましたら、教えてください。
お願いいたします。
回答2件