※ ChatGPTを利用し、要約された質問です(原文:特定のIDがついているdivを任意の順に)
特定のIDがついているdivを任意の順に並び替える処理方法
このQ&Aのポイント
特定のIDがついているdivを任意の順に並び替える処理方法について、JavaScriptのコード例を紹介します。
jQueryのafter()メソッドを使用して、指定したdivを順番に追加する方法について解説します。
変数を使って動的にdivを追加する際には、ループ処理を組み合わせることで実現できます。
HTML内の特定のIDがついているdivを任意の順に並び替える処理を行いたいです。
<div id="sample-field">hogehoge</div>
<div id="hoge-field">ほげほげほげ</div>
<div id="dummy-field">ホゲホゲ</div>
divのIDが固定であれば、
jQuery('#kotei').after(jQuery('#hoge-field'),jQuery('#dummy-field'),jQuery('#sample-field'));
という感じでいけるそうで、このafter()の中身を作ろうとして詰まっています。
----------------------------------------------------------------
var targetField = "hoge-field,dummy-field,sample-field";//←この順にしたい
targetField = targetField.split(",");
targetFieldLength = targetField.length;
for ( i=0; i < targetFieldLength; i++ ) {
source = "jQuery(" + "'" + "#" + targetField[i] + "'" + "),";
}
----------------------------------------------------------------
jQuery('#kotei').after(source);
まず、↑のように書きました。
順にお尻に連結していくには「+」だというのは理解しているのですが、
そもそも、変数 source は上書きされていくので、意図したものにはなりません。
最後の「,」を削除する処理も必要ですが、targetFieldLengthの数のループの時だけ処理を変える事で対応できそうな気はしています。
本当は、↓こうしたいです。
jQuery('#kotei').after(jQuery('#hoge-field'),jQuery('#dummy-field'),jQuery('#sample-field'));
拙い説明で恐縮ですが、
アドバイスいただけると嬉しいです。
よろしくお願いします。
お礼
ありがとうございます! 早々にアドバイスいただいていたにも関わらず、 お礼が遅れていしまい大変申し訳ありませんでした。 関数化ですね。 基本メソッドをある程度把握した上で、extendメソッドの利便性が発揮できる部分も多そうで、 複雑な印象もあって今までスルーしてしまってしました。 いただいたコードも今後の為に役立てさせていただきます。 本当にありがとうございました。