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

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

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

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

jQuery

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

1回答

1495閲覧

リストの付与したデータを取得し、配列に入ったn番目の情報を取得したい。

www-www

総合スコア12

JavaScript

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

jQuery

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2017/04/23 08:37

編集2017/04/23 09:25

###実現したいこと
以下のような、リストと配列があります。

■リスト

<ul class="list"> <li data-category="1 2">果物</li> <li data-category="1 3 4">赤いもの</li> <li data-category="1 2 3">食べられるもの</li> <li data-category="4">食べられないもの</li> </ul> <div id="wrap"> <ul> </ul> </div>

■配列

var arr = [ '<li>りんご</li>', '<li>ばなな</li>', '<li>トマト</li>', '<li>郵便ポスト</li>' ]

リストをクリックした際に、リストのdata-categoryを取得し、data-categoryの中に入っているデータn番目の情報を#wrapのul内にappendしたいです。

###試したこと

var arr = [ '<li>りんご</li>', '<li>ばなな</li>', '<li>トマト</li>', '<li>郵便ポスト</li>' ] $('.list li').on('click',function(){ var category = $(this).data('category'); $.each(arr,function(i,ele){ $('#wrap').append(arr[category]); }); });

上記ですと、.list liに入っているデータが1つの場合は、正しく情報を取得できるのですが、複数入っている場合に、正しく情報が取ることができませんでした。

よろしくお願いいたします。

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

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

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

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

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

kei344

2017/04/23 09:14

変数「liarr」が定義されていませんが、転記する際に抜け落ちていませんか?
www-www

2017/04/23 09:26

ありがとうございます。また失礼いたしました。「liarr」ではなく「arr」でしたので、修正いたしました。
guest

回答1

0

ベストアンサー

たとえば。

HTML

1<ul class="list"> 2 <li data-category="1 2">果物</li> 3 <li data-category="1 3 4">赤いもの</li> 4 <li data-category="1 2 3 9">食べられるもの</li> 5 <li data-category="4">食べられないもの</li> 6</ul> 7 8<div id="wrap"> 9 <ul> 10 </ul> 11</div>

JavaScript

1var arr = [ 2 '<li>りんご</li>', 3 '<li>ばなな</li>', 4 '<li>トマト</li>', 5 '<li>郵便ポスト</li>' 6] 7 8$( '.list li' ).on( 'click', function() { 9 var category = ( $( this ).data( 'category' ) + ' ' ).split( ' ' ); 10 var l = arr.length; 11 $.each( category, function( i, ele ) { 12 if ( '' === ele || l < ele ) { return; } 13 $( '#wrap' ).append( arr[ ele - 1 ] ); 14 } ); 15} ); 16```**動くサンプル:**[https://jsfiddle.net/98tLj67t/](https://jsfiddle.net/98tLj67t/)

投稿2017/04/23 09:42

kei344

総合スコア69407

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

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

www-www

2017/04/23 13:16

希望どおりの動きになりました!! ありがとうございます! まだ理解できていないところがあるのですが、自分の力でどうにかします...! ベストアンサーとさせていただきます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問