teratail header banner
teratail header banner
質問するログイン新規登録
JavaScript

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

jQuery

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

Q&A

解決済

2回答

1891閲覧

特定のclassのついたタグにidを順番に割り当てる

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

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

jQuery

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

1グッド

0クリップ

投稿2015/12/18 01:26

編集2015/12/18 01:40

1

0

class.hogeがあるタグに対して、idを順番に割り当てたいと思っています。
(hoge_00、hoge_01、hoge_02…hoge_07)

html

1<ul> 2 <li class="hoge"></li> 3 <li class="hoge"></li> 4 <li class="hoge"></li> 5 <li class="hoge"></li> 6 <li class="hoge"></li> 7 <li class="hoge"></li> 8 <li class="hoge"></li> 9 </ul>

jQuery

1$(function() { 2 var i = 0; 3 $('.hoge').each(function(i) { 4 $(this).attr('id', "hoge_0"+ i); 5 }); 6});

書き方を調べてみたところ、上記のような書き方をしているのを見たのですが、
もっと綺麗に書く方法はありますでしょうか?

hirai0110👍を押しています

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

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

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

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

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

guest

回答2

0

ベストアンサー

.attrにコールバック関数を渡して、その返り値を属性にすることができます。

javascript

1$('.hoge').attr('id',function(i){return "hoge_"+i});

投稿2015/12/18 01:39

maisumakun

総合スコア146659

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

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

退会済みユーザー

退会済みユーザー

2015/12/18 01:46

ありがとうございます。 こういった書き方も出来るんですね! 追加の質問となり恐縮ですが、var i の宣言は不要なのでしょうか? (グローバル変数にならないのでしょうか?)
ikki57

2015/12/18 01:50

先ほど回答してしまったのですが、こちらのやり方の方が良いですね
ikki57

2015/12/18 01:55 編集

> var i の宣言は不要なのでしょうか? 不要です。 下記ドキュメントに記載がありますが、 http://semooh.jp/jquery/api/attributes/attr/key,fn/ > attr(key,fn) > 設定したい値を返すコールバック関数。スコープ内でのthisポインタは処理中の要素。引数は処理中の要素のインデックス。 `attr` の第二引数の `function` の引数は(つまりサンプルコードの `i` は)、 `処理中の要素のインデックス` (つまり順序の番号ですね。0, 1, 2, 3... ) が入ってくるので、宣言は不要です。
退会済みユーザー

退会済みユーザー

2015/12/18 04:06

丁寧なご説明をありがとうございました! よくわかりました。
guest

0

$('.hoge').each(function(i, e) { $(this).attr('id', "slideForm_0" + ++i); });

投稿2015/12/18 01:46

編集2015/12/18 01:47
ikki57

総合スコア290

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

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

退会済みユーザー

退会済みユーザー

2015/12/18 04:05

ありがとうございます!こちらも私のものより綺麗ですね。勉強になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問