2016-06-24 1 views
-2

Ich habe ein großes Problem. Ich möchte ein DOM-Element mit jQuery auswählen. Dies geschieht innerhalb einer AngularJS http-Anfrage. Es funktioniert, wenn die Laufzeit abgelaufen ist, aber wenn ich die Funktion sofort nach dem Laden der Seite aufruft, gibt jQuery nur ein natives JS-DOM-Objekt zurück.jQuery Gibt nur native Dom-Objekte zurück

Der Code ist nichts besonderes. Es ist nur:

$http({ "methode" : "GET", "url" : <URL>, "cache" : true }) 
.success(function(data){ 
    ... 
    var jQueryElement = jQuery("#" + params.elemId); 
    jQueryElement[0].previousElementSibling.children[1].classList.add("active"); 
    ... 
}); 

Diese Anfrage ist innerhalb einer Funktion eines angularjs Controller. Wie ich schon sagte, wenn es direkt nach dem Laden der Seite aufgerufen wird, gibt jQuery (...) nur ein natives DOM-Objekt zurück.

Kann jemand das beheben?

+1

mit jqueryobject [Nummer] Sie erhalten nativer dom Elemente –

+1

Wenn Sie nur Klasse auf ein Element festlegen müssen, würde ich eher empfehlen Umfang variable Einstellung und Verwendung ng-Klasse-Richtlinie über Element –

+0

ich auch jQuery.parent() verwenden, und einige andere jQuery-Funktionen. @RolandStarke: ja, ich weiß aber, was jQuery gibt lools wie folgt aus: Object { "content": {...} "Selektor": {..} So gibt es keine jQueryObject [] –

Antwort

0

Ich löste das Problem durch Auslösen eines Ereignisses, wenn der Inhalt vollständig geladen ist. Die Funktion mit der Funktion überwacht nun dieses Ereignis und startet die http-Anfrage nach dem Ereignis.

Danke an Roland Starke. Es war so ein offensichtlicher Grund, warum es nicht funktioniert.