私のタイトルがちょっと混乱していたら謝ります。私はそれを称える良い方法を考えることができませんでした。ページ上の多くのフォームの1つにある要素にIDを動的に追加する
とにかく、私はいくつかのjQueryのヘルプを探しています。
私は3つのフォームを持つページを持っています。各フォームのすべてのフォームフィールドには値があらかじめ入力されており、デフォルトでは無効になっています。
各フォームには「編集」リンクがあり(すべて同じクラスが割り当てられています)、クリックすると無効なプロパティが削除され、保存およびキャンセルボタンが表示され、最初の入力フィールドにフォーカスが移ります。私が必要とするすべてのIDをハードコードするとき、私はこれを自分で達成することができます。しかし、それは本当に私の状況のために働くつもりはありません。
各フォーム間の唯一の一意の識別子は、フォームタグのIDです。
私がやっていることは、ページが読み込まれたときに、編集リンクにIDを追加し、編集リンクのIDを新しく作成したIDにフォームIDを追加することです。私は動的に明示的にHTMLで設定しなくても、各編集リンクにIDを追加しているよ
<form id="form-1">
<a class="edit">Edit</a>
...
</form>
<form id="form-2">
<a class="edit">Edit</a>
...
</form>
<form id="form-3">
<a class="edit">Edit</a>
...
</form>
:
は、ここに私が働いているかを示すために、非常に基本的なコード例です。私は、フォームのIDである[フォームID]と、 "編集 - [フォームID]"のIDを追加したいと思います。私は、フォームは次のようになりたいページが読み込まれた後にそう
:ここ
<form id="form-1">
<a class="edit" id="edit-form-1">Edit</a>
...
</form>
<form id="form-2">
<a class="edit" id="edit-form-2">Edit</a>
...
</form>
<form id="form-3">
<a class="edit" id="edit-form-3">Edit</a>
...
</form>
は、私がこれまで試してみましたものですが、それは正常に動作させることはできません。
$(document).ready(function(){
$("form").each(function(index) {
var formID = $("form").attr("id");
$(".edit").attr("id", "edit-" + formID);
});
});
残念ながら、すべてのフォーム編集リンクにid="edit-form-1"
が追加されています。
私はこれと似たようなことをする必要がある他の要素もありますが、1つの動作例が残りの部分を助けるはずです。
ご協力いただきますようお願い申し上げます。
実際の質問は、なぜこれらのIDが必要なのですか?イベントハンドラが必要な場合は、クリックされたボタンに関連する各フォームにアクセスするために '$(this).closest( 'form')'を実行するだけでIDの必要はありませんか? – adeneo
あなたが知っている、あなたは正しいかもしれません。クリックイベントのセレクタとして使用するために、特定のものにIDを追加したいと思っていました。私はJSにはあまり経験がありませんでしたので、おそらくこれに最も近づいていないかもしれませんが、私はタイトなスケジュールで仕事をしています。セレクタを使用していない場合は、jQueryのサイトの例に示されています。 –