suchen
HeimWeb-Frontendjs-TutorialNative JavaScript -Äquivalente von JQuery -Methoden: DOM und Formen

Native JavaScript Equivalents of jQuery Methods: the DOM and Forms

Kernpunkte

  • jQuery ist ein nützliches Instrument für Entwickler, die Legacy Internet Explorer unterstützen oder Bibliotheken wie jQuery länger als die Entwicklung von Anwendungen schreiben müssen. In den meisten anderen Fällen ist die Verwendung von nativem JavaScript jedoch effizienter, da es nicht erforderlich ist, große Bibliotheken wie JQuery zu laden.
  • native JavaScript -Äquivalente von häufig verwendeten JQuery -Methoden wie DOM -Selektoren und DOM -Operationen werden normalerweise schneller und effizienter ausgeführt als ihre JQuery -Gegenstücke. Beispielsweise kann die Verwendung von document.getElementsByClassName oder document.getElementById viel schneller sein als die Verwendung von JQuery $() Wrapper.
  • HTML5 bietet eine integrierte Unterstützung für eine Vielzahl gemeinsamer Eingabetypen, ohne zusätzliche JavaScript- oder JQuery-Code zur Formularvalidierung hinzuzufügen. Alte Browser, die diese neuen Typen nicht unterstützen, werden in Standard-Texteingangsfeldern wiederhergestellt und erfordern die serverseitige Überprüfung.

über meine jüngste "Benötigen Sie wirklich jQuery? 》 Artikel, die Debatte geht weiter, aber kurz gesagt, es gibt zwei Gründe, JQuery zu verwenden: 1. Sie müssen IE6/7/8 unterstützen (denken Sie daran, Sie können nicht auf JQuery 2.0 migrieren) oder 2. ohne jQuery, Sie werden, Sie werden nicht Verbringen Sie mehr als die Entwicklung. Die Anwendung braucht länger, um eine Bibliothek wie JQuery zu schreiben.

Bitte seien Sie pragmatisch für alle anderen Situationen. JQuery ist eine 270 KB Universal Library. Es ist unwahrscheinlich, dass Sie alle Funktionen benötigen, die es bietet, auch wenn Sie bestimmte Module weglassen, es ist immer noch ein großer Code -Stück. Sie können eine minifizierte Version von 30 KB vom CDN laden, aber der Browser muss die Verarbeitung und den Code auf jeder Seite beenden und analysieren, bevor Sie andere Aktionen ausführen. Dies ist die erste in einer Reihe von Artikeln, die native JavaScript -Äquivalente für häufig verwendete JQuery -Methoden zeigen. Vielleicht möchten Sie einige davon in kürzeren, ähnlichen Aliased-Funktionen einwickeln, aber Sie müssen sicherlich keine eigene jQuery-ähnliche Bibliothek erstellen.

DOM -Selektor

jQuery ermöglicht die DOM -Knotenauswahl mithilfe der CSS -Selektorsyntax, zum Beispiel:

// 在 ID 为“first”的文章中查找所有具有类“summary”的段落
var n = $("article#first p.summary");

natives Äquivalent:

var n = document.querySelectorAll("article#first p.summary");

document.querySelectorAll wird in allen modernen Browsern und IE8 implementiert (obwohl dies nur CSS2.1 -Selektoren unterstützt). JQuery bietet zusätzliche Unterstützung für fortschrittlichere Selektoren, wird jedoch zum größten Teil innerhalb der $() -Wrapper ausgeführt. Native JavaScript bietet auch vier Alternativen an, die mit ziemlicher Sicherheit schneller als document.querySelectorAll sind, wenn Sie sie verwenden können: querySelectorAll

  1. document.querySelector(selector) - Holen Sie sich nur den ersten passenden Knoten
  2. document.getElementById(idname) - Holen Sie sich einen einzelnen Knoten mit seinem ID -Namen
  3. document.getElementsByTagName(tagname) - Holen Sie sich den Knoten, der dem Element entspricht (wie H1, p, stark usw.).
  4. document.getElementsByClassName(class) - Holen Sie sich einen Knoten mit einem bestimmten Klassennamen
Die Methoden

getElementsByTagName und getElementsByClassName können auch auf einen einzelnen Knoten angewendet werden, um das Ergebnis nur auf Nachkommen zu beschränken, beispielsweise:

// 在 ID 为“first”的文章中查找所有具有类“summary”的段落
var n = $("article#first p.summary");

Lassen Sie uns einige Tests durchführen. Ich habe einige kleine Skripte geschrieben, um von meinem "Brauchen Sie wirklich JQuery?" 》 Suchen Sie alle Kommentarknoten 10.000 Mal im Artikel. Ergebnisse:

代码 时间
// jQuery 2.0<br>var c = $("#comments .comment"); 4,649 ms
// jQuery 2.0<br>var c = $(".comment"); 3,437 ms
// 原生 querySelectorAll<br>var c = document.querySelectorAll("#comments .comment"); 1,362 ms
// 原生 querySelectorAll<br>var c = document.querySelectorAll(".comment"); 1,168 ms
// 原生 getElementById / getElementsByClassName<br>var n = document.getElementById("comments");<br>var c = n.getElementsByClassName("comment"); 107 ms
// 原生 getElementsByClassName<br>var c = document.getElementsByClassName("comment"); 75 ms

Ich kann keine strengen Laborbedingungen beanspruchen, und es spiegelt auch nicht die Verwendung der realen Welt wider, aber in diesem Fall ist der native JavaScript 60-mal schneller. Es heißt auch, dass das Erhalten von Knoten nach ID, Tag oder Klasse normalerweise besser ist als querySelectorAll.

DOM -Operation

jQuery bietet verschiedene Möglichkeiten, dem DOM mehr hinzuzufügen, wie z. B.

// 在 ID 为“first”的文章中查找所有具有类“summary”的段落
var n = $("article#first p.summary");

Unter der Oberfläche verwendet JQuery die native innerHTML Methode, zum Beispiel:

var n = document.querySelectorAll("article#first p.summary");

Sie können auch DOM -Build -Technologie verwenden. Diese sind sicherer, aber selten schneller als innerHTML:

var n = document.getElementById("first");
var p = n.getElementsByTagName("p");

Wir können auch alle untergeordneten Knoten in jQuery löschen:

$("#container").append("<p>more content</p>");

native Äquivalente zur Verwendung innerHTML:

document.getElementById("container").innerHTML += "<p>more content</p>";

oder eine kleine Funktion:

var p = document.createElement("p");
p.appendChild(document.createTextNode("more content"));
document.getElementById("container").appendChild(p);

Schließlich können wir das gesamte Element aus dem DOM in jQuery löschen:

$("#container").empty();

oder natives JavaScript:

document.getElementById("container").innerHTML = null;

skalierbare Vektorgrafiken (SVG)

Core JQuery Library wurde entwickelt, um aktuelle Dokumente zu verarbeiten. SVG hat auch DOM, aber JQuery bietet diesen Objekten keine direkte Manipulation, da es normalerweise Methoden wie createElementNS und getAttributeNS erfordert. Es funktioniert und es sind mehrere Plugins verfügbar, aber es ist effizienter, Ihren eigenen Code zu schreiben oder eine dedizierte SVG -Bibliothek wie Raphaël oder Svg.Js.

html5 Form

Auch die grundlegendsten Webanwendungen haben ein oder zwei Formulare. Sie sollten die Benutzerdaten immer auf der Serverseite überprüfen, aber im Idealfall können Sie sie durch Client -Überprüfung ergänzen, damit die Fehler vor dem Senden des Formulars erfasst werden können. Die Client -Überprüfung ist einfach: 1. Führen Sie eine Funktion aus, wenn das Formular eingereicht wird. 2. Wenn Sie auf Probleme stoßen, hören Sie auf, einen Fehler einzureichen, und zeigen Sie einen Fehler an.

Sie können JQuery verwenden. Sie können native JavaScript verwenden. Welches sollten Sie wählen? wählt weder . HTML5 unterstützt eine Vielzahl von häufig verwendeten Eingabetypen wie E -Mail, Telefon, URL, Nummer, Uhrzeit, Datum, Farbe und benutzerdefinierte Felder, die auf regulären Ausdrücken basieren. Wenn Sie beispielsweise einen Benutzer zwingen möchten, eine E -Mail -Adresse einzugeben, verwenden Sie bitte:

var c = document.getElementById("container");
while (c.lastChild) c.removeChild(c.lastChild);

Sofern Sie nicht komplexere Funktionen benötigen (z. B. zwei oder mehr Felder oder Anzeigen benutzerdefinierter Fehlermeldungen), müssen zusätzliche JavaScript- oder JQuery -Code nicht erforderlich sind. Ältere Browser (einschließlich IE9 und unten) verstehen den neuen Typ nicht und werden in Standard -Texteingangsfeldern wiederhergestellt. Diese Benutzer fallen auf die serverseitige Überprüfung zurück. In meinem nächsten Beitrag werden wir uns native CSS -Klassenoperationen und -animationen ansehen.

FAQs über JQuery und native JavaScript

(Der FAQ -Teil wird hier weggelassen, da der Inhalt dieses Teils schwach mit dem Bild und dem Artikel des Artikels zusammenhängt und der Artikel länger ist, sodass er separat verarbeitet werden kann.)

Das obige ist der detaillierte Inhalt vonNative JavaScript -Äquivalente von JQuery -Methoden: DOM und Formen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
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
Python vs. JavaScript: Die Lernkurve und BenutzerfreundlichkeitPython vs. JavaScript: Die Lernkurve und BenutzerfreundlichkeitApr 16, 2025 am 12:12 AM

Python eignet sich besser für Anfänger mit einer reibungslosen Lernkurve und einer kurzen Syntax. JavaScript ist für die Front-End-Entwicklung mit einer steilen Lernkurve und einer flexiblen Syntax geeignet. 1. Python-Syntax ist intuitiv und für die Entwicklung von Datenwissenschaften und Back-End-Entwicklung geeignet. 2. JavaScript ist flexibel und in Front-End- und serverseitiger Programmierung weit verbreitet.

Python gegen JavaScript: Community, Bibliotheken und RessourcenPython gegen JavaScript: Community, Bibliotheken und RessourcenApr 15, 2025 am 12:16 AM

Python und JavaScript haben ihre eigenen Vor- und Nachteile in Bezug auf Gemeinschaft, Bibliotheken und Ressourcen. 1) Die Python-Community ist freundlich und für Anfänger geeignet, aber die Front-End-Entwicklungsressourcen sind nicht so reich wie JavaScript. 2) Python ist leistungsstark in Bibliotheken für Datenwissenschaft und maschinelles Lernen, während JavaScript in Bibliotheken und Front-End-Entwicklungsbibliotheken und Frameworks besser ist. 3) Beide haben reichhaltige Lernressourcen, aber Python eignet sich zum Beginn der offiziellen Dokumente, während JavaScript mit Mdnwebdocs besser ist. Die Wahl sollte auf Projektbedürfnissen und persönlichen Interessen beruhen.

Von C/C nach JavaScript: Wie alles funktioniertVon C/C nach JavaScript: Wie alles funktioniertApr 14, 2025 am 12:05 AM

Die Verschiebung von C/C zu JavaScript erfordert die Anpassung an dynamische Typisierung, Müllsammlung und asynchrone Programmierung. 1) C/C ist eine statisch typisierte Sprache, die eine manuelle Speicherverwaltung erfordert, während JavaScript dynamisch eingegeben und die Müllsammlung automatisch verarbeitet wird. 2) C/C muss in den Maschinencode kompiliert werden, während JavaScript eine interpretierte Sprache ist. 3) JavaScript führt Konzepte wie Verschlüsse, Prototypketten und Versprechen ein, die die Flexibilität und asynchrone Programmierfunktionen verbessern.

JavaScript -Engines: Implementierungen vergleichenJavaScript -Engines: Implementierungen vergleichenApr 13, 2025 am 12:05 AM

Unterschiedliche JavaScript -Motoren haben unterschiedliche Auswirkungen beim Analysieren und Ausführen von JavaScript -Code, da sich die Implementierungsprinzipien und Optimierungsstrategien jeder Engine unterscheiden. 1. Lexikalanalyse: Quellcode in die lexikalische Einheit umwandeln. 2. Grammatikanalyse: Erzeugen Sie einen abstrakten Syntaxbaum. 3. Optimierung und Kompilierung: Generieren Sie den Maschinencode über den JIT -Compiler. 4. Führen Sie aus: Führen Sie den Maschinencode aus. V8 Engine optimiert durch sofortige Kompilierung und versteckte Klasse.

Jenseits des Browsers: JavaScript in der realen WeltJenseits des Browsers: JavaScript in der realen WeltApr 12, 2025 am 12:06 AM

Zu den Anwendungen von JavaScript in der realen Welt gehören die serverseitige Programmierung, die Entwicklung mobiler Anwendungen und das Internet der Dinge. Die serverseitige Programmierung wird über node.js realisiert, die für die hohe gleichzeitige Anfrageverarbeitung geeignet sind. 2. Die Entwicklung der mobilen Anwendungen erfolgt durch reaktnative und unterstützt die plattformübergreifende Bereitstellung. 3.. Wird für die Steuerung von IoT-Geräten über die Johnny-Five-Bibliothek verwendet, geeignet für Hardware-Interaktion.

Erstellen einer SaaS-Anwendung mit mehreren Mietern mit Next.js (Backend Integration)Erstellen einer SaaS-Anwendung mit mehreren Mietern mit Next.js (Backend Integration)Apr 11, 2025 am 08:23 AM

Ich habe eine funktionale SaaS-Anwendung mit mehreren Mandanten (eine EdTech-App) mit Ihrem täglichen Tech-Tool erstellt und Sie können dasselbe tun. Was ist eine SaaS-Anwendung mit mehreren Mietern? Mit Multi-Tenant-SaaS-Anwendungen können Sie mehrere Kunden aus einem Sing bedienen

So erstellen Sie eine SaaS-Anwendung mit mehreren Mietern mit Next.js (Frontend Integration)So erstellen Sie eine SaaS-Anwendung mit mehreren Mietern mit Next.js (Frontend Integration)Apr 11, 2025 am 08:22 AM

Dieser Artikel zeigt die Frontend -Integration mit einem Backend, das durch die Genehmigung gesichert ist und eine funktionale edtech SaaS -Anwendung unter Verwendung von Next.js. erstellt. Die Frontend erfasst Benutzerberechtigungen zur Steuerung der UI-Sichtbarkeit und stellt sicher, dass API-Anfragen die Rollenbasis einhalten

JavaScript: Erforschung der Vielseitigkeit einer WebspracheJavaScript: Erforschung der Vielseitigkeit einer WebspracheApr 11, 2025 am 12:01 AM

JavaScript ist die Kernsprache der modernen Webentwicklung und wird für seine Vielfalt und Flexibilität häufig verwendet. 1) Front-End-Entwicklung: Erstellen Sie dynamische Webseiten und einseitige Anwendungen durch DOM-Operationen und moderne Rahmenbedingungen (wie React, Vue.js, Angular). 2) Serverseitige Entwicklung: Node.js verwendet ein nicht blockierendes E/A-Modell, um hohe Parallelitäts- und Echtzeitanwendungen zu verarbeiten. 3) Entwicklung von Mobil- und Desktop-Anwendungen: Die plattformübergreifende Entwicklung wird durch reaktnative und elektronen zur Verbesserung der Entwicklungseffizienz realisiert.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

SublimeText3 Englische Version

SublimeText3 Englische Version

Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Leistungsstarke integrierte PHP-Entwicklungsumgebung