Ich würde es zuerst in das DOM setzen. Ich bin mir nicht sicher, warum mein erstes Beispiel fehlgeschlagen ist. Das ist wirklich komisch.
var e = $("<ul><li><div class='bar'>bla</div></li></ul>");
$('li', e).attr('id','a1234'); // set the attribute
$('body').append(e); // put it into the DOM
Putting e (die Erträge Elemente) gibt jQuery context unter denen die CSS-Selektor anzuwenden. Dadurch wird verhindert, dass die ID auf andere Elemente in der DOM-Struktur angewendet wird.
Das Problem scheint zu sein, dass Sie das UL nicht verwenden. Wenn Sie eine leere Li in den DOM-Baum stecken, werden Sie Probleme haben. Ich dachte, es könnte damit umgehen/umgehen, aber es geht nicht.
Sie können keine nackten LI's in Ihren DOM-Baum für Ihre "echte" Implementierung einfügen, aber die ULs sind notwendig, damit dies funktioniert. Seufzer.
Beispiel: http://jsbin.com/iceqo
By the way, können Sie auch in microtemplating interessiert.
es funktioniert nicht, weil Sie die Suche innerhalb des von Ihnen erstellten dom-Elements anwenden. In diesem Fall versuchen Sie 'li' unter' li' zu finden, jedoch gibt es nur ein 'div' und einen Text' bla'. Versuchen Sie etwas wie das zu verstehen, was passiert 'var template = $ ("