1

jQuery セレクターを使用して動的に作成された要素を取得しようとしていますが、空の配列が返されます。

私が最初にやっていることは、空のdivをつかむことです:

var packDiv = document.getElementById('templates');
packDiv.innerHTML = "";

次に、ループでアイテムを追加します。

packDiv.innerHTML = packDiv.innerHTML + "<img id='" + thumbName + "' src='thumbs/" + thumbName + "'/>";

ループが終了した後、次を使用してアイテムを選択しようとします。

console.log($("#"+thumbName));

空の配列を返します。私が検索して使用するものはすべて表示されます.onが、すべての例は、イベント ハンドラーを設定することを示しています。

私の質問は、動的に作成された要素のセレクターをどのようにフォーマットするのですか?

4

1 に答える 1

2

たとえば、thumbNameがファイル名であるとするfoo.jpgと、期待どおりにjQueryによって解析されません。.jpg名前の一部はクラス名として扱われ、その要素にこのクラス名を指定していないため、jQueryは空の配列を返します。セレクターに一致するものは見つかりません。foo実際には、idとクラス名を持つ要素を検索していますjpg

私がこれで行く方法は、これらの線に沿ったものです:

var packDiv = $('#templates');
packDiv.empty();

//inside a loop
packDiv.append("<img class='" + thumbName.replace(/\./g,'') + "' src='thumbs/" + thumbName + "'/>");

console.log($("."+thumbName.replace(/\./g,'')));
于 2012-10-31T18:50:26.550 に答える