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

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

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

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

jQuery

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

Q&A

解決済

1回答

120閲覧

ボタンで読込データファイルを切替え、表示させたい

wkbiz

総合スコア150

JavaScript

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

jQuery

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

0グッド

0クリップ

投稿2018/07/23 07:42

編集2018/07/23 08:16

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

<追記>
不足していたので追記します。
data01とdata02のデータがあり、ボタン1を押下するとdata01、
ボタン2を押下するとdata02が表に表示される。という仕組みを作りたい。です。

data01、data02共に各データの変数に割り当てていますが、data01,data02を
更に変数で切替えできるようにしたいのです。

ーーーー
複数のデータ(JSON)があり、これをボタンで切替え&表示させたいのです。
現在のソースは下記のようなものになります。

データを指す変数datasetを動的に扱おうとしたのですが
Uncaught TypeError: Cannot read property 'release' of undefined
となってしまいます。

根本的にやり方がダメなのでしょうが、何かヒントでも結構ですので
いただけると幸いです。

<script> $(function(){ var dataset; //data01 var data01 = {release:[ {...},{...} ]} //data02 追記 var data02 = {release:[ {...},{...} ]} //ボタン判定 $('#data1').on('click',function(){ dataset = "data1"; } $('#data2').on('click',function(){ dataset = "data2"; } $('#reset').on('click',function(){ dataset = "reset"; } //データ出力 for(var index in $dataset.release){ $($dataset.release[index][`val$[i]`]).appendTo('table.tbl tbody'); } ]); </script> <body> <button id="data1">データ1</button> <button id="data2">データ2</button> <button id="reset">リセット</button> </body>

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

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

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

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

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

guest

回答1

0

ベストアンサー

var dataset;

↑宣言している変数は「dataset」であって、「$dataset」は宣言してませんね。

宣言してない変数は「undefined」になりますね。

質問文編集結果に対し追記

//ボタン判定 $('#data1').on('click',function(){ dataset = "data1"; } // 中略 //データ出力 for(var index in $dataset.release){ $($dataset.release[index][`val$[i]`]).appendTo('table.tbl tbody'); }

↑変数「dataset」にセットされるのは「ボタンを押したとき」です。
「データ出力」部分が実行されるタイミングでは「dataset」は内容未定義(undefined)のままです。

また、

//ボタン判定 $('#data1').on('click',function(){ dataset = "data1"; }

↑これでは「data1」という文字列を変数「dataset」に設定することになり、期待しているように動作はしません。

//data01 var data01 = {release:[ {...},{...} ]} // 中略 //ボタン判定 $('#data1').on('click',function(){ dataset = data01; }

↑「data01」を変数にセットしたいならちゃんとそのように書きましょう。

投稿2018/07/23 07:56

編集2018/07/23 08:31
tkturbo

総合スコア5572

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

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

wkbiz

2018/07/23 07:59

回答ありがとうございます。 ということは$datasetをvar宣言すれば、コード自体は問題ないということなのでしょうか?
tkturbo

2018/07/23 08:04

↑失礼、そもそもJSONデータは変数「data」で扱ってますね。「dataset」不要では?
wkbiz

2018/07/23 08:17

すいません、追記させていただきました。 data01とdata02があって、これをボタンで表示切替させたい。という意味の質問です。 分かりづらく申し訳ありませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問