- ベストアンサー
HTMLをJavaScriptで多次元配列に変換する方法
- JavaScriptを使用して、HTMLを多次元配列に変換する方法について教えてください。
- 具体的には、与えられたHTMLを一部抜粋し、以下のような形式の多次元配列に変換したいです:[['03/9', 0], ['03/11', 11]]
- ご教授いただけると幸いです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
http://www.doraneko.org/misc/dom10/19981001/level-one-html.html#ID-67417573 tableの構成要素(rows)をforループでまわしながらcellsから値の取り出しをしていけばいいかと思います。 以下はテキトウ。 <table> <tbody id="TB"> <tr> <td> <div>03</div> </td> <td> <div> 9</div> </td> <td> <div>0</div> </td> </tr> <tr> <td> <div>03</div> </td> <td> <div>11</div> </td> <td> <div>11</div> </td> </tr> </tbody> </table> <script type="text/javascript"> var data = new Array(); var TBODY = document.getElementById('TB'); for(var r=0;TBODY.rows[r];r++) { data[r] = new Array(); data[r][0] = parseNode(TBODY.rows[r].cells[0]) + '/' + parseNode(TBODY.rows[r].cells[1]); data[r][1] = parseNode(TBODY.rows[r].cells[2]); } alert(data[0][0]+','+data[0][1]);//確認 alert(data[1][0]+','+data[1][1]);//確認 //ノードを解析、テキストを返す。 function parseNode(P,str) { if(! str) str = ''; for(var O=P.firstChild;O;O=O.nextSibling) { if(O.nodeType == 3) { str += O.nodeValue.replace(/\s+/g,''); } else if(O.nodeType == 1) { str += parseNode(O,str); } } return str; } </script>
お礼
steel_grayさん、ありがとうございます。 試してみた結果、上手く動作しました!! まだまだ、初心者ですが、諸先輩方のお力を拝借しながら、 これからも、がんばりたいと思います!