🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

8733閲覧

テーブルの値を1行ずつ取得してjqueryにて連想配列を作る方法

u-sukesan

総合スコア160

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

3クリップ

投稿2019/12/12 14:36

<table> <tr> <td><input type='text' class='dat' value='2019-10-11'></td> <td><input type='text' class='id' value='1'></td> <td><input type='text' class='name' value='太郎'></td> <td><input type='text' class='add' value='愛知県'></td> </tr> <tr> <td><input type='text' class='dat' value='2019-12-11'></td> <td><input type='text' class='id' value='2'></td> <td><input type='text' class='name' value='次郎'></td> <td><input type='text' class='add' value='三重県'></td> </tr> <tr> <td><input type='text' class='dat' value='2019-11-11'></td> <td><input type='text' class='id' value='3'></td> <td><input type='text' class='name' value='花子'></td> <td><input type='text' class='add' value='東京都'></td> </tr> <tr> <td><input type='text' class='dat' value='2019-11-11'></td> <td><input type='text' class='id' value='4'></td> <td><input type='text' class='name' value='三郎'></td> <td><input type='text' class='add' value='京都府'></td> </tr> </table>

上記のようなテーブルデータを
jQuery.each(jQuery("table tr"), function(i, val) {})
で1行ずつ受け取り、下記のような配列を作りたいのですが

jQuery

1var str={} 2str{ 3 2019-10-11:{1:{name:太郎,add:愛知県}}, 4 2019-12-11:{2:{name:次郎,add:三重県}}, 5 2019-11-11:{3:{name:花子,add:東京都},4:{name:三郎,add:京都府}} 6}

※上記、配列の書き方が間違ってたらすいません。
PHPでいうと下記のようにしたいのです。

PHP

1$str=array( 2 '2019-10-11'=>array(1=>array(name:太郎,add:愛知県)), 3 '2019-12-11'=>array(2=>array(name:次郎,add:三重県)), 4 '2019-11-11'=>array(3=>array(name:花子,add:東京都),4=>array(name:三郎,add:京都府),), 5)
var str={} jQuery.each(jQuery("table tbody tr"), function(i, val) { var dat = jQuery(this).find('.dat').val() var name = jQuery(this).find('.name').val() var add = jQuery(this).find('.add').val() str[dat]=[ id={'name':name,'add':add} ] })

としてみたのですが、上手く取得できません。
どのようにすれば取得できますでしょうか

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こんな感じでいけます

jquery

1var obj = {}; 2var $trs = $('table tr'); 3 4$.each($trs,function(i,tr){ 5 var $tr = $(tr); 6 var key = $tr.find('.dat').val(); 7 var id = $tr.find('.id').val(); 8 9 var rowData = { 10 name : $tr.find('.name').val(), 11 add : $tr.find('.add').val(), 12 }; 13 14 if(obj.hasOwnProperty(key) === false) { 15 obj[key] = {}; 16 } 17 18 obj[key][id] = rowData; 19});

jsfiddle

投稿2019/12/12 18:48

CaptainRTA

総合スコア136

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

u-sukesan

2019/12/13 00:15

ありがとうございます! 希望の結果が返りました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問