Heim > Web-Frontend > js-Tutorial > Hauptteil

Detaillierte Beispiele von 16 Methoden zum Ersetzen von JQuery durch natives JS

伊谢尔伦
Freigeben: 2017-06-17 11:46:35
Original
1802 Leute haben es durchsucht

Bringen Sie eine einfache Implementierung von nativem JS, die einige JQuery-Methoden ersetzt. Ich finde es ziemlich gut, deshalb möchte ich es mit allen teilen und als Referenz verwenden.

1. Elemente auswählen

// jQuery
var els = $('.el');

// Native
var els = document.querySelectorAll('.el');

// Shorthand
var $ = function (el) {
 return document.querySelectorAll(el);
}
Nach dem Login kopieren

querySelectorAll-Methode gibt ein NodeList-Objekt zurück, das in ein Array konvertiert werden muss.

myList = Array.prototype.slice.call(myNodeList)
Nach dem Login kopieren

2. Elemente erstellen

// jQuery
var newEl = $(&#39;<p/>&#39;);

// Native
var newEl = document.createElement(&#39;p&#39;);
Nach dem Login kopieren

3. Ereignisse hinzufügen

// jQuery
$(&#39;.el&#39;).on(&#39;event&#39;, function() {

});

// Native
[].forEach.call(document.querySelectorAll(&#39;.el&#39;), function (el) {
 el.addEventListener(&#39;event&#39;, function() {

 }, false);
});
Nach dem Login kopieren

4.get/setAttribute

// jQuery
$(&#39;.el&#39;).filter(&#39;:first&#39;).attr(&#39;key&#39;, &#39;value&#39;);
$(&#39;.el&#39;).filter(&#39;:first&#39;).attr(&#39;key&#39;);

// Native
document.querySelector(&#39;.el&#39;).setAttribute(&#39;key&#39;, &#39;value&#39;);
document.querySelector(&#39;.el&#39;).getAttribute(&#39;key&#39;);
Nach dem Login kopieren

5. Stile hinzufügen und entfernen Klasse

Das DOM-Element selbst hat ein The Das Attribut className mit Lese-/Schreibzugriff kann zum Betreiben von Klassen verwendet werden.

HTML 5 bietet außerdem ein ClassList-Objekt mit leistungsfähigeren Funktionen (wird von IE 9 nicht unterstützt).

// jQuery
$(&#39;.el&#39;).addClass(&#39;class&#39;);
$(&#39;.el&#39;).removeClass(&#39;class&#39;);
$(&#39;.el&#39;).toggleClass(&#39;class&#39;);

// Native
document.querySelector(&#39;.el&#39;).classList.add(&#39;class&#39;);
document.querySelector(&#39;.el&#39;).classList.remove(&#39;class&#39;);
document.querySelector(&#39;.el&#39;).classList.toggle(&#39;class&#39;);
Nach dem Login kopieren

6. Elemente anhängen

Elemente am Ende anhängen:

// jQuery
$(&#39;.el&#39;).append($(&#39;<p/>&#39;));

// Native
document.querySelector(&#39;.el&#39;).appendChild(document.createElement(&#39;p&#39;));
Nach dem Login kopieren

Elemente am Kopf anhängen:

//jQuery
$(‘.el&#39;).prepend(&#39;<p></p>&#39;)

//Native
var parent = document.querySelector(&#39;.el&#39;);
parent.insertBefore("<p></p>",parent.childNodes[0])
Nach dem Login kopieren

7. Element klonen

// jQuery
var clonedEl = $(&#39;.el&#39;).clone();

// Native
var clonedEl = document.querySelector(&#39;.el&#39;).cloneNode(true);
Nach dem Login kopieren

8. Element entfernen

Remove
// jQuery
$(&#39;.el&#39;).remove();

// Native
remove(&#39;.el&#39;);

function remove(el) {
 var toRemove = document.querySelector(el);

 toRemove.parentNode.removeChild(toRemove);
}
Nach dem Login kopieren

9 Element

// jQuery
$(&#39;.el&#39;).parent();

// Native
document.querySelector(&#39;.el&#39;).parentNode;
Nach dem Login kopieren

10. Holen Sie sich das vorherige/nächste Element (Vorheriges/nächstes Element)

// jQuery
$(&#39;.el&#39;).prev();
$(&#39;.el&#39;).next();

// Native
document.querySelector(&#39;.el&#39;).previousElementSibling;
document.querySelector(&#39;.el&#39;).nextElementSibling;
Nach dem Login kopieren

11.XHR und AJAX

// jQuery
$.get(&#39;url&#39;, function (data) {

});
$.post(&#39;url&#39;, {data: data}, function (data) {

});

// Native

// get
var xhr = new XMLHttpRequest();

xhr.open(&#39;GET&#39;, url);
xhr.onreadystatechange = function (data) {

}
xhr.send();

// post
var xhr = new XMLHttpRequest()

xhr.open(&#39;POST&#39;, url);
xhr.onreadystatechange = function (data) {

}
xhr.send({data: data});
Nach dem Login kopieren

12. Untergeordnete Elemente löschen

//jQuery
$("#elementID").empty()

//Native
var element = document.getElementById("elementID")
while(element.firstChild) element.removeChild(element.firstChild);
Nach dem Login kopieren

13. Überprüfen Sie, ob untergeordnete Elemente vorhanden sind

//jQuery
if (!$("#elementID").is(":empty")){}

//Native
if (document.getElementById("elementID").hasChildNodes()){}
Nach dem Login kopieren

14.$(document).ready

Wenn das DOM geladen wird, wird das DOMContentLoaded-Ereignis ausgelöst, das der $(document).ready-Methode von jQuery entspricht .

document.addEventListener("DOMContentLoaded", function() {
  // ...
});
Nach dem Login kopieren

15. Datenspeicherung

jQuery-Objekte können Daten speichern.

$("body").data("foo", 52);
Nach dem Login kopieren

HTML 5 verfügt über ein Datensatzobjekt, das ähnliche Funktionen hat (von IE 10 nicht unterstützt), aber nur Strings speichern kann.

element.dataset.user = JSON.stringify(user);
element.dataset.score = score;
Nach dem Login kopieren

16. Animation

Die Animationsmethode von jQuery wird zum Generieren von Animationseffekten verwendet.

$foo.animate(&#39;slow&#39;, { x: &#39;+=10px&#39; }
Nach dem Login kopieren

Die Animationseffekte von JQuery basieren größtenteils auf DOM. Aber derzeit ist die CSS 3-Animation weitaus leistungsfähiger als die DOM-Animation, sodass Sie Animationseffekte in CSS schreiben und die Animation dann anzeigen können, indem Sie die Klassen der DOM-Elemente manipulieren.

foo.classList.add(&#39;animate&#39;)
Nach dem Login kopieren

Wenn Sie die Callback-Funktion für Animationen verwenden müssen, definiert CSS 3 auch entsprechende Ereignisse.

el.addEventListener("webkitTransitionEnd", transitionEnded);
el.addEventListener("transitionend", transitionEnded);
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonDetaillierte Beispiele von 16 Methoden zum Ersetzen von JQuery durch natives JS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage