Wie wählt man ein Element nach classnnamen mit jqLite?

Ich versuche, jquery aus meiner Angular.js-App zu entfernen, um es leichter zu machen, und setze stattdessen Angulars jqLite ein. Aber die App verwendet stark find (‘# id’) und find (‘.classname’), die nicht von jqLite unterstützt werden, nur ‘Tag-Namen’ (laut Dokumentation)

Ich fragte mich, was Sie für den besten Ansatz hielten, um es zu ändern. Ein Ansatz, über den ich nachgedacht habe, ist das Erstellen von benutzerdefinierten HTML-Tags. zum Beispiel: ändern
Add to bag

zu

 Add to bag 

und

 $element.find('#add-to-bag') 

zu

 $element.find('a2b') 

Irgendwelche Gedanken? andere Ideen?

Vielen Dank

Lior

Solutions Collecting From Web of "Wie wählt man ein Element nach classnnamen mit jqLite?"

Im Wesentlichen und wie von @ kevin-b angegeben:

 // find('#id') angular.element(document.querySelector('#id')) //find('.classname'), assumes you already have the starting elem to search from angular.element(elem.querySelector('.classname')) 

Hinweis: Wenn Sie dies von Ihren Controllern aus tun möchten, sollten Sie sich den Abschnitt “Korrekte Verwendung von Controllern” im Entwicklerhandbuch ansehen und Ihre Präsentationslogik in geeignete statementen umwandeln (z. B. ). .

Wenn elem.find() nicht für Sie arbeitet, überprüfen Sie, ob Sie das JQuery-Skript vor dem eckigen Skript einfügen.

Angual verwendet die leichtere Version von jquery, die als jqlite bezeichnet wird, was bedeutet, dass es nicht alle functionen von jQuery hat. Hier ist eine Referenz in angularjs docs darüber, was Sie von jquery verwenden können. angularelement-Dokumente

In Ihrem Fall müssen Sie ein Div mit ID oder classnnamen finden. für den classnnamen, den Sie verwenden können

 var elems =$element.find('div') //returns all the div's in the $elements angular.forEach(elems,function(v,k)){ if(angular.element(v).hasClass('class-name')){ console.log(angular.element(v)); }} 

oder Sie können viel einfacher per Abfrage-Selektor verwenden

 angular.element(document.querySelector('#id')) angular.element(elem.querySelector('.classname')) 

es ist nicht so flexibel wie jQuery aber was