人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

おせわになります。プログラマ初心者です。
当方、現在職業訓練校に通っているのですが、javascriptでプログラム作れるようになりたくても、答えていただけるような状況になく、
恥ずかしながら、こちらに質問をさせていただきます。

javascriptで、配列を用いて、順番に「#1」「#2」「#3」「#4」「#5」「#6」
と表示するプログラムを作りたいと考えています。
(「#」は、HTMLで指定しているidで利用するため、必須です。)

下記のように書いたのですが、思うように順番に値を取得することができません。


<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
var test = [['#1','#2','#3'], ['#4','#5','$6']];
for(var i=0; i<2; i++){
for(var j= 0; j<3; j++){
x = test[i][j];

$(function(){
alert(x);
});
}
}
</script>
どのようにしたら、配列の中の値を順番に取得して表示できるようになるでしょうか?

私のような素人でも「わかりやすい回答」を頂けた方には、先着で100ptを進呈したいと思います。
どうぞ、よろしくお願いいたします。

●質問者: よっさん
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

質問者から

>ぽけっとしすてむさま。 ご質問ありがとうございます。。

下記、正しいかどうかわかりませんが、php的な書き方をしますと、
連想配列を利用して、

$list[] = array('a' => '#1',
'b' => '#2',
'c' => '#3',
);
$list[] = array('a' => '#4',
'b' => '#5',
'c' => '#6',
);

for ($i = 0; $i < count($list); $i++) {
echo $list[$i]["a"];
echo $list[$i]["b"];
echo $list[$i]["c"];
}

のように、整理して書きたいと考えました。

こちらで、イメージはつたわりますでしょうか?


1 ● a-kuma3
●100ポイント ベストアンサー

順番には動いてます。表示の仕方が間違っているだけです。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
var test = [['#1','#2','#3'], ['#4','#5','#6']];
for(var i=0; i<2; i++){
 for(var j= 0; j<3; j++){
 x = test[i][j];

// $(function(){ jQuery 関数の使い方が間違ってます
// alert(x);
// });

 alert(x); // 確認するだけなら、単に alert() を呼び出せば良いです。
 }
}
</script>

でも、これだと jQuery を使っている意味がないし、もしかしたら「表示」って、こういうことをやりたいんでしょうか。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(function() {
 var test = [['#1','#2','#3'], ['#4','#5','#6']];
 for(var i=0; i<2; i++){
 for(var j= 0; j<3; j++){
 x = test[i][j];

 $('#target').append($('<DIV></DIV>',{id: x}).text(x));
 }
 }
});
</script>
<style>
#target {
 border: solid 1px blue;
}
</style>
<div id="target"></div>




追記です。
補足に書かれた php のコードにちょっと近いイメージで書き直しました。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(function() {
 var test = [
 {a:'#1',b:'#2',c:'#3'},
 {a:'#4',b:'#5',c:'#6'},
 ];
 for(var i=0; i<2; i++){
 for(var j in test[i]) {
 x = test[i][j];

 $('#target').append($('<DIV></DIV>',{id: x}).text(x));
 }
 }
});
</script>
<style>
#target {
 border: solid 1px blue;
}
</style>
<div id="target"></div>

jsFiddle で、試してみたのがこちらです。
http://jsfiddle.net/e2t430xt/

動かすと

<div id="target"></div>

というところが、以下のようになります。

<div id="target">
<div id="#1">#1</div>
<div id="#2">#2</div>
<div id="#3">#3</div>
<div id="#4">#4</div>
<div id="#5">#5</div>
<div id="#6">#6</div>
</div>

# 改行は入りませんけど。


a-kuma3さんのコメント
おっと、補足が...

よっさんさんのコメント
ありがとうございます。 「php のコードにちょっと近いイメージ」、どんぴしゃでした。 とても、助かりました。

2 ● Lhankor_Mhy
●0ポイント

こんにちは。
正解?だけ書くならこうです。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
var test = [['#1','#2','#3'], ['#4','#5','$6']];
for(var i=0; i<2; i++){
 for(var j= 0; j<3; j++){
 x = test[i][j];

 alert(x);
 }
}
</script>


解説が必要なら追記しますのでご連絡ください。


Lhankor_Mhyさんのコメント
あら、補足拝読。a-kuma3さんが回答してるからもういいかな。

a-kuma3さんのコメント
ここから先が長いような予感も <tt>:-)</tt>
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ