前提・実現したいこと
Internet Explorerで動作させるwebサイト内で、とあるテーブル内のtrのtd内にselectやinputがあり、それをtrごとにループさせて値を取得するのをネイティブなjavascriptで実現したいのですがうまくいきません。
該当のソースコード
html
1<table> 2 <tr class="hoge"> 3 <td> 4 <select class="fuga"> 5 <option value="1">りんご</option> 6 <option value="2">みかん</option> 7 <option value="3">なし</option> 8 </select> 9 10 </td> 11 <td> 12 <input class="piyo"/> 13 </td> 14 </tr> 15</table>
試したこと
javascriptでは以下のコードのように試しました。
javascript
1var trs = document.getElementsByClassName('hoge'); 2for (var i = 0;i < trs.length;i++) { 3 var select = trs[i].getElementsByClassName('fuga'); 4 console.log(select.value); 5 var input = trs[i].getElementsByName('piyo'); 6 console.log(input.value); 7}
console.log(select.value);
はundefinedとなり、
var input = trs[i].getElementsByName('piyo');
に至っては
オブジェクトは 'getElementsByName' プロパティまたはメソッドをサポートしていません。
のエラーが発生しています。
jQueryを使用できない環境なので、find等が使えず困っています。
最終的には、全てのtr要素のselectとinputの値を取得してサーバ側にリクエストを行うプログラムを作成するつもりです。
すみませんが、よろしくお願い致します。
追記
大事なことを記載し忘れていました。
tr要素は可変で、1行のこともあれば100行のこともあります。
1つだけであれば、回答いただいたように直接取得してしまえばいい話だと思いますが、
trをループさせたうえで要素の値を取得する必要があると思い質問させていただきました。
よろしくお願い致します。
回答3件
あなたの回答
tips
プレビュー