2016-08-09 103 views
0

Wir haben ein div innerhalb unserer Webseite:Wie wählt man Elemente aus einer Vorlage?

<div id="person-details"> 
    <div></div> 
    ... 
</div> 

Wir wählen die relevanten Elemente aus DIV den folgenden jQuery-Code verwenden:

var person = $("#person-details"); 
var children = release.find("div"); 
var fullname = children.first(); 

Wir verwenden eine Funktion machen eine Ajax-Anfrage durchführen zu erhalten ein Lenker Vorlage, die wir in einer externen Datei sind zu speichern:

function _render() { 
    var templateScript; 
    template.getTemplate(filename).done(function(template) { 
     templateScript = Handlebars.compile(template); 
     fullname.html(templateScript(context)); 
    }); 
} 

die Vorlage sieht wie folgt aus:

<div> 
    <div> 
     <p>{{name}}</p> 
    </div> 
    <div> 
     <p>{{value}}</p> 
    </div> 
</div> 

Nachdem die Renderfunktion aufgerufen wurde, möchten wir eines der Elemente aus der Vorlage auswählen. Zum Beispiel haben wir versucht mit:

fullname.children('div');

aber der Inhalt dynamisch sind wir nicht in der Lage zu bekommen, die die Knoten innerhalb des DOM erzeugt wurde.

Ist es sogar möglich Elemente aus einer generierten Lenkervorlage so auszuwählen?

+1

Es ist möglich, nur daran erinnern, dass Javascript asynchron ausgeführt wird, so dass Sie möglicherweise ein DOM-Element auswählen, das noch gerendert werden soll. –

+0

@DanielShillcock Dank Daniel, komplett übersehen die asynchrone Art von Render. – cgmcintyre

+1

Hier ist ein Ausschnitt, der helfen kann. Jede Eingabe wird auf die Konsole gedruckt. http://codepen.io/IronAces/pen/NAEOWy?editors=101#anon-login –

Antwort

2

Dank @DanielShillcock für Hervorhebung render() asynchron. Hier ist eine Lösung: