質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

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

jQuery

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

1508閲覧

jQuery、JSでulでグループ分けされたli>inputの値を二次元配列として格納

Tats.N

総合スコア62

JavaScript

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

jQuery

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2016/07/21 21:40

こんにちは、いつもありがとうございます。
文が下手でタイトルからは分かりにくいかもしれませんが、
この下のようなHTMLからinputの値をそれぞれul毎に分けて取得し二次元配列にしたいです。

HTML

1<ul class='question-list'> 2 <li> 3 <div class="choice"> 4 <ul class="list"> 5 <li><input type="radio" name="1" value="0001">></li> 6 <li><input type="radio" name="1" value="0002">></li> 7 <li><input type="radio" name="1" value="0003">></li> 8 <li><input type="radio" name="1" value="0004">></li> 9 </ul> 10 </div> 11 </li> 12 <li> 13 <div class="choice"> 14 <ul class="list"> 15 <li><input type="radio" name="2" value="0007">></li> 16 <li><input type="radio" name="2" value="0008">></li> 17 <li><input type="radio" name="2" value="0009">></li> 18 <li><input type="radio" name="2" value="0010">></li> 19 </ul> 20 </div> 21 </li> 22 <li> 23 <div class="choice"> 24 <ul class="list"> 25 <li><input type="radio" name="3" value="0015">></li> 26 <li><input type="radio" name="3" value="0016">></li> 27 </ul> 28 </div> 29 </li> 30</ul>

selectionの中身を、

Javascript

1selection = [ 2[0001,0002,0003,0004], 3[0007,0008,0009,0010], 4[0015,0016], 5]

のようにしたいのですが、下のコードだとhtml内のすべてのliの値を取得した後、
count++が実行され、ulごとに二次元配列が作れないです。

Javascript

1 2var selection = []; 3var count = 0; 4 5$("ul.list").each(function(){ 6 $("li > input[type=radio]").each(function(){ 7 selection[count] = [$(this).val()]; 8 }) 9 count++; 10})

初心者でよくわかっていない部分が多いので、何か大間違いをしているかもしれません。。
どうかご教授願います。

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

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

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

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

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

guest

回答1

0

ベストアンサー

以下のようにしてみてはいかがでしょうか。

javascript

1$(function(){ 2 var selection = []; 3 var count = 0; 4 5 $("ul.list").each(function(){ 6 var arr = []; 7 $(this).find("li > input[type=radio]").each(function(){ 8 arr.push($(this).val()); 9 }) 10 selection[count] = arr; 11 count++; 12 }); 13}); 14

以下検証

jQuery、JSでulでグループ分けされたli>inputの値を二次元配列として格納 検証

投稿2016/07/21 23:48

編集2016/07/21 23:51
orange0190

総合スコア1698

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

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

orange0190

2016/07/21 23:49

解説が必要ならコメントください。
Tats.N

2016/07/21 23:54

できました!本当にありがとうございます!
coba-coba

2016/07/22 00:54

参考までに、map()を使うともう少しきれいに書けます。 $(function(){ var selection = []; $(".list").each(function(){ selection.push( $(this).find("input[type=radio]").map(function(){ return $(this).val(); }).get() ) });
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問