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

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

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

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

jQuery

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

Q&A

解決済

2回答

1410閲覧

jQueryの構文に変数を組み込む方法

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

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

jQuery

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

0グッド

2クリップ

投稿2015/02/22 12:54

lang

1$("td#a_1").text(a_1) ;

とすれば、HTMLの「td#a_1」に、変数「a_1」に格納されたデータが表示されます。

同様に、a_2、a_3、…、a_15という形でデータが続くため、

lang

1for(var i=0 ;i<=15 ;i++){ 2 "$('td#rent_"+i+"').text(rent_"+i+")" ;

のように、ループ処理できないだろうかと考えました。
しかし、これはうまく機能しませんでした。

そもそも、

lang

1"$('td#a_1')"+".text(a_1)" ;

という形で、変数を使わずに行った連結すら、うまく機能しませんでした。

JavaScript、jQueryでは、このような処理をすることは不可能なのでしょうか。
どのようにしたら良いかご存知の方、ご教示いただけないでしょうか。
よろしくお願い致します。

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

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

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

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

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

guest

回答2

0

ベストアンサー

tdはid="rent_0"からid="rent_15"まであると言うことでしょうか?

lang

1for ( var i=0; i < 15; i++ ) { 2 $('td#rent_'+i).text('rent_'+i); 3}

文字列とjavascriptのコードは別物なので、混同しないようにしましょう。

投稿2015/02/22 13:13

shinosan

総合スコア209

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

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

退会済みユーザー

退会済みユーザー

2015/02/22 14:30

ありがとうございます。変数を使う時はそのようにくくるのですね。
shinosan

2015/02/22 14:36

「"」や「'」で括ったものは文字列になり、文字列と値を連結すると文字列となる。そう理解しておけば良いかと。
naga3

2015/02/22 23:29

上記のプログラムではrent_0~rent_15は文字列になるので 変数としての参照はできないと思います。 変数として使いたいならばtoru81さんのようにevalで解釈させるか、 配列にしたほうが良いと思います。
shinosan

2015/02/23 00:52

確かに、rent_0~rent15は変数でしたね。 ただ、扱いから見ると配列にした方が設計としてよさそうです。そうすれば、下記のようにシンプルになりますし。 $('td#rent_'+i).text(rent[i]);
退会済みユーザー

退会済みユーザー

2015/02/23 13:03

最終的に、下記のような形で、実現しました。 for(var i=1 ;i<=15 ;i++){ left_hand = 'rent_1_'+i ; left_hand = $('input#aaa_1_'+i).val() ; $('td#rent_1_' + i).text(left_hand) ; } 実際には、inputも#aaa_1_1~#aaa_1_15まであります。 forループで、それらのデータを取得しながら、td#rent_1_1~td#rent_1_15に反映することができました。 ありがとうございました。
guest

0

動作確認はしていませんが、こんな感じでできないでしょうか。

lang

1 $('td#rent_' + i).text(eval('rent_' + i )) ;

投稿2015/02/22 13:03

toru81

総合スコア170

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

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

退会済みユーザー

退会済みユーザー

2015/02/22 14:31

ありがとうございます。 変数を使う時の括り方を理解していませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問