Home Web Front-end JS Tutorial Native JavaScript Equivalents of jQuery Methods: the DOM and Forms

Native JavaScript Equivalents of jQuery Methods: the DOM and Forms

Feb 23, 2025 am 08:59 AM

Native JavaScript Equivalents of jQuery Methods: the DOM and Forms

Core points

  • jQuery is a useful tool for developers who need to support legacy Internet Explorer or write libraries like jQuery longer than developing applications. However, for most other cases, using native JavaScript is more efficient because it does not require loading large libraries like jQuery.
  • Native JavaScript equivalents of commonly used jQuery methods such as DOM selectors and DOM operations are usually executed faster and more efficiently than their jQuery counterparts. For example, using document.getElementsByClassName or document.getElementById may be much faster than using jQuery's $() wrapper.
  • HTML5 provides built-in support for a variety of common input types without adding additional JavaScript or jQuery code for form validation. Old browsers that do not support these new types will be restored to standard text input fields and require server-side verification.

About my recent "Do you really need jQuery? 》 article, the debate continues, but in short, there are two reasons to use jQuery: 1. You need to support IE6/7/8 (remember you can't migrate to jQuery 2.0), or 2. Without jQuery, you will spend more than development The application takes longer to write a library like jQuery.

Please be pragmatic for all other situations. jQuery is a 270KB universal library. It's unlikely that you need all the functionality it provides, even if you omit certain modules, it's still a big chunk of code. You may load a minified version of 30KB from the CDN, but the browser must stop processing and parse the code on each page before doing any other actions. This is the first in a series of articles that showcase native JavaScript equivalents to commonly used jQuery methods. While you may want to wrap some of these in shorter, similar aliased functions, you certainly don't need to create your own jQuery-like library.

DOM selector

jQuery allows DOM node selection using CSS selector syntax, for example:

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

Native equivalent:

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

document.querySelectorAll is implemented in all modern browsers and IE8 (although this only supports CSS2.1 selectors). jQuery provides additional support for more advanced selectors, but for the most part it runs within the $() wrapper. Native JavaScript also offers four alternatives, which are almost certainly faster than document.querySelectorAll if you can use them: querySelectorAll

  1. document.querySelector(selector) — Get only the first matching node
  2. document.getElementById(idname) — Get a single node by its ID name
  3. document.getElementsByTagName(tagname) — Get the node matching the element (such as h1, p, strong, etc.).
  4. document.getElementsByClassName(class) — Get a node with a specific class name
The

getElementsByTagName and getElementsByClassName methods can also be applied to a single node to limit the result to descendants only, for example:

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

Let's do some testing. I wrote some small scripts to get from my "Do you really need jQuery?" 》 Searches all comment nodes 10,000 times in the article. Results:

代码 时间
// 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

I can't claim strict lab conditions, nor does it reflect real-world usage, but in this case native JavaScript is 60 times faster. It also states that getting nodes by ID, tag, or class is usually better than querySelectorAll.

DOM operation

jQuery provides several ways to add more to the DOM, such as:

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

Below the surface, jQuery uses the native innerHTML method, for example:

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

You can also use DOM build technology. These are safer, but rarely faster than innerHTML:

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

We can also delete all child nodes in jQuery:

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

Native equivalents to use innerHTML:

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

or a small function:

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

Finally, we can delete the entire element from the DOM in jQuery:

$("#container").empty();
Copy after login

or native JavaScript:

document.getElementById("container").innerHTML = null;
Copy after login

Scalable Vector Graphics (SVG)

Core jQuery library has been developed to process current documents. SVG also has DOM, but jQuery does not provide direct manipulation to these objects, as it usually requires methods such as createElementNS and getAttributeNS . It works and there are several plugins available, but it's more efficient to write your own code or use a dedicated SVG library like Raphaël or svg.js.

HTML5 Form

Even the most basic web applications will have one or two forms. You should always verify user data on the server side, but ideally you would supplement it with client verification so that the errors can be caught before submitting the form. Client verification is simple: 1. Run a function when the form is submitted. 2. If you encounter any problems, stop submitting and display an error.

You can use jQuery. You can use native JavaScript. Which one should you choose? Neither chooses . HTML5 supports a variety of commonly used input types, such as email, phone, URL, number, time, date, color, and custom fields based on regular expressions. For example, if you want to force a user to enter an email address, please use:

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

Unless you need more complex features (such as comparing two or more fields or displaying custom error messages), there is no need for additional JavaScript or jQuery code. Older browsers (including IE9 and below) do not understand the new type and will be restored to standard text input fields. These users will fall back to server-side verification; this is not a great experience, but you can apply a shim or hope these people see the light and upgrade. In my next post, we will look at native CSS class operations and animations.

FAQs about jQuery and native JavaScript

(The FAQ part is omitted here because the content of this part is weakly related to the picture and article subject, and the article is longer, so it can be processed separately.)

The above is the detailed content of Native JavaScript Equivalents of jQuery Methods: the DOM and Forms. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

What should I do if I encounter garbled code printing for front-end thermal paper receipts? What should I do if I encounter garbled code printing for front-end thermal paper receipts? Apr 04, 2025 pm 02:42 PM

Frequently Asked Questions and Solutions for Front-end Thermal Paper Ticket Printing In Front-end Development, Ticket Printing is a common requirement. However, many developers are implementing...

Demystifying JavaScript: What It Does and Why It Matters Demystifying JavaScript: What It Does and Why It Matters Apr 09, 2025 am 12:07 AM

JavaScript is the cornerstone of modern web development, and its main functions include event-driven programming, dynamic content generation and asynchronous programming. 1) Event-driven programming allows web pages to change dynamically according to user operations. 2) Dynamic content generation allows page content to be adjusted according to conditions. 3) Asynchronous programming ensures that the user interface is not blocked. JavaScript is widely used in web interaction, single-page application and server-side development, greatly improving the flexibility of user experience and cross-platform development.

Who gets paid more Python or JavaScript? Who gets paid more Python or JavaScript? Apr 04, 2025 am 12:09 AM

There is no absolute salary for Python and JavaScript developers, depending on skills and industry needs. 1. Python may be paid more in data science and machine learning. 2. JavaScript has great demand in front-end and full-stack development, and its salary is also considerable. 3. Influencing factors include experience, geographical location, company size and specific skills.

How to merge array elements with the same ID into one object using JavaScript? How to merge array elements with the same ID into one object using JavaScript? Apr 04, 2025 pm 05:09 PM

How to merge array elements with the same ID into one object in JavaScript? When processing data, we often encounter the need to have the same ID...

Is JavaScript hard to learn? Is JavaScript hard to learn? Apr 03, 2025 am 12:20 AM

Learning JavaScript is not difficult, but it is challenging. 1) Understand basic concepts such as variables, data types, functions, etc. 2) Master asynchronous programming and implement it through event loops. 3) Use DOM operations and Promise to handle asynchronous requests. 4) Avoid common mistakes and use debugging techniques. 5) Optimize performance and follow best practices.

How to achieve parallax scrolling and element animation effects, like Shiseido's official website?
or:
How can we achieve the animation effect accompanied by page scrolling like Shiseido's official website? How to achieve parallax scrolling and element animation effects, like Shiseido's official website? or: How can we achieve the animation effect accompanied by page scrolling like Shiseido's official website? Apr 04, 2025 pm 05:36 PM

Discussion on the realization of parallax scrolling and element animation effects in this article will explore how to achieve similar to Shiseido official website (https://www.shiseido.co.jp/sb/wonderland/)...

The Evolution of JavaScript: Current Trends and Future Prospects The Evolution of JavaScript: Current Trends and Future Prospects Apr 10, 2025 am 09:33 AM

The latest trends in JavaScript include the rise of TypeScript, the popularity of modern frameworks and libraries, and the application of WebAssembly. Future prospects cover more powerful type systems, the development of server-side JavaScript, the expansion of artificial intelligence and machine learning, and the potential of IoT and edge computing.

The difference in console.log output result: Why are the two calls different? The difference in console.log output result: Why are the two calls different? Apr 04, 2025 pm 05:12 PM

In-depth discussion of the root causes of the difference in console.log output. This article will analyze the differences in the output results of console.log function in a piece of code and explain the reasons behind it. �...

See all articles