search
HomeWeb Front-endJS TutorialUnderstand jQuery techniques to improve your code (I personally think the jquery manual is very good)_jquery

jquery-选择器-技巧
2. Test whether a jQuery wrapper set contains certain elements
If you want to test whether a jQuery wrapper set contains certain elements, you can first try to verify whether the first element exists:
Copy code The code is as follows:

if($(selector)[0]){... }
// Or like this
if($(selector).length){...}

Let’s look at this example:
Copy the code The code is as follows:

//Example. If your page has the following html code

  • Item X

  • Item Y
  • Item Z


... <br>//This if condition will return true because we have two <br>// input fields matching the selector, so the <statement> code will execute <br>if($( '#shopping_cart_items input.in_stock')[0]){<statement>} <br></statement></statement>

3. Read the latest version of jQuery from jquery.org
You can use this code to read jQuery The latest version of the code file.


You can use this method to call the latest version of the jQuery framework , of course, you can also use the following code to call the same latest version of jQuery from ajax.googleapis.com:


4. Store data
Use the data method to avoid storing data in the DOM. Some Front-end developers like to use HTML attributes to store data:
Copy code The code is as follows:

$('selector').attr('alt', 'data being stored');
//You can read the data like this later:
$('selector').attr('alt');

Using the "alt" attribute as a parameter name to store data is actually not semantic for HTML. We can use jQuery's data method to store data for an element in the page:
Copy code The code is as follows:

$('selector').data('parameter name', 'Data to be stored');
//Then get the data like this:
$('selector').data('parameter');

This data method allows you You can clearly define the data parameters yourself, which is more semantic and flexible. You can store data information in any element on the page. If you want to know more about the data() and removeData() methods, you can read the jQuery official explanation

The classic application of this method is to give the input field a default value, and then clear it when focusing:
HTML part:
Copy code The code is as follows:







JavaSript part:
Copy code The code is as follows:

$(function() {
//Take out the input field with clear class
//(Note: "clear once" is two classes clear and once)
$(' #testform input.clear').each(function(){
//Use data method to store data
$(this).data( "txt", $.trim($(this).val() ) );
}).focus(function(){
// When getting focus, determine whether the value in the field is the same as the default value. If it is the same, clear it
if ( $.trim($(this)) .val()) === $(this).data("txt") ) {
$(this).val("");
}
}).blur(function() {
// Add blur time to the field with class clear to restore the default value
// But if the class is once, ignore it
if ( $.trim($(this).val()) = == "" && !$(this).hasClass("once") ) {
//Restore saved data
$(this).val( $(this).data("txt") );
}
});
});

5. Keep the jQuery manual close at hand
Most people have a hard time remembering all the programming details, no matter how good they are Most programmers will also be careless about a certain programming language, so printing out the relevant manuals or putting them on the desktop for reference at any time can definitely improve programming efficiency.
oscarotero jquery 1.3 (Wallpaper version)
jQuery手册
6. Record jQuery in FireBug console
FireBug is my favorite one. One of the browser extension tools, this tool allows you to quickly understand the HTML CSS JavaScript of the current page in the visual interface, and complete instant development under this tool. As a jQuery or JavaScript developer, FireFox is also supported for logging your JavaScript code.

The easiest way to write to the FireBug console is as follows:
console.log("hello world")

firebug-jquery-控制台
You can also write some parameters the way you want:

console.log(2,4,6,8,"foo",bar)
You also You can write a small extension to log jQuery objects to the console:

Copy the code The code is as follows:

jQuery.fn.log = function (msg) {
console.log("%s: %o", msg, this);
return this;
};

For this extension, you can directly use the .log() method to log the current object to the console.
Copy code The code is as follows:

$('#some_div').find('li .source > input:checkbox')
.log("sources to uncheck")
.removeAttr("checked");

7. Use ID selectors whenever possible
After using jQuery, you will find that it is quite simple to use the class attribute to select DOM elements. Despite this, it is recommended that you use class selectors as little as possible instead and use ID selectors that run faster as much as possible (using class selectors in IE browser will return a matching class packaging set after traversing the entire DOM tree). The ID selector is faster because the DOM itself has a "natural" getElementById method, but class does not. So if you use class selectors, the browser will traverse the entire DOM. If the DOM structure of your web page is complex enough, these class selectors are enough to make the page slower and slower. Let’s look at this simple HTML code:
Copy the code The code is as follows:

< ;div id="main">

Selectors in jQuery


...
...


// Using a class to call the submit button is much slower than using an absolute ID selector
var main_button = $('#main .button');
var main_button = $('#main_button');

8. Make good use of jQuery chain
jQuery chain not only allows powerful operations to be written in a concise way, but also improves development efficiency because it can apply multiple commands to the package set without having to recalculate Packaging set. So you no longer have to write like this:
Copy the code The code is as follows:

  • Description:
  • $('#shopping_cart_items input.text').css( 'border', '3px dashed yellow');
    $('#shopping_cart_items input.text').css('background-color', 'red');
    $('#shopping_cart_items input.text' ).val("text updated");

    Instead you can use jQuery chain to complete the simple operation:
    Copy code The code is as follows:

    var input_text = $('#shopping_cart_items input.text');
    input_text.css('border', '3px dashed yellow') ;
    input_text.css('background-color', 'red');
    input_text.val("text updated");

    //same with chaining:
    var input_text = $('#shopping_cart_items input.text');
    input_text
    .css('border', '3px dashed yellow')
    .css('background-color', 'red')
    .val("text updated");
    [html]
    9. Bind jQuery function to $(window).load event
    Most jQuery examples or tutorials tell us to bind our jQuery code to the $(document).ready event. Although the $(document).ready event is OK in most cases, its parsing sequence starts when the document is ready and objects such as images in a single document are being downloaded. Therefore, using the $(document).ready event may not necessarily achieve the results we expect at certain times, such as some visual effects and animations, dragging, pre-reading hidden pictures, etc... By using the $(window).load event It's safe to wait until the entire document is ready before running your desired code.
    [code]
    $(window).load(function(){
    // Put the code you want to run after the page is fully ready here
    });

    10. Use jQuery chains to limit selectors, making your code more concise and elegant
    Since JavaScript supports chain structures and line breaks, your code can be written as follows. This example first moves the element up Remove one class and add another class to the same element:
    Copy code The code is as follows:

    $('#shopping_cart_items input.in_stock')
    .removeClass('in_stock')
    .addClass('3-5_days');

    If you want to make it easier Practical, you can create a jQuery function that supports chain structure:
    Copy the code The code is as follows:

    $.fn.makeNotInStock = function() {
    return $(this).removeClass('in_stock').addClass('3-5_days');
    }
    $('#shopping_cart_items input. in_stock').makeNotInStock().log();

    11. Use callback function to synchronize effects
    If you want to ensure that an event or animation effect is called after another event is run , then you have to use the callback function. You can bind callback functions behind these animation effects: slideDown( speed, [callback] ) ie. $('#sliding').slideDown('slow', function(){… Click here to preview this example.
    Copy code The code is as follows:

    $(document).ready(function(){
    // Use jQuery’s click event to change the visual effect and enable the sliding effect
    $("div.button" ).click(function () {
    //div.button now looks like the effect of being pressed
    $(this).css({ borderStyle:"inset", cursor:"wait" });
    //#sliding will now fade out and turn on the fade-in effect after completing the action
    //slideup once it completes
    $('#sliding').slideDown('slow', function(){
    $('#sliding').slideUp('slow', function(){
    //After the fade effect is completed, the CSS properties of the button will be changed
    $('div.button').css ({ borderStyle:"outset", cursor:"auto" });
    });
    });
    });
    });

    12 .Learn to use custom selectors
    jQuery allows us to define custom selectors based on css selectors to make our code more concise:
    Copy code The code is as follows:

    $.expr[':'].mycustomselector= function(element, index, meta, stack){
    // element- DOM element
    // index - the currently traversed index in the stack value
    // meta - the data element about your selector
    // stack - the stack used to iterate over all elements

    // returns true if the current element is included
    // no Return false if the current element is included
    };

    // Application of custom selector:
    $('.someClasses:test').doSomething();

    Let's take a look at a small example below, where we use a custom selector to lock the set of elements containing the "rel" attribute:
    Copy code The code is as follows:

    $.expr[':'].withRel = function(element){
    var $this = $(element);
    / /Only return elements whose rel attribute is not empty
    return ($this.attr('rel') != '');
    };

    $(document).ready(function( ){
    //The use of custom selectors is very simple. Like other selectors, it returns an element packaging set
    //You can use the formatting method for it, such as modifying its css style as follows
    $('a:withRel').css('background-color', 'green');
    });

    13. Preload images
    Usually using JavaScript to preload images is a good way:
    Copy code The code is as follows:

    //Define the function to preload the image list (with parameters)
    jQuery.preloadImages = function(){
    //Traverse the images
    for(var i = 0; ijQuery("Understand jQuery techniques to improve your code (I personally think the jquery manual is very good)_jquery").attr("src", arguments[i]);

    }
    }
    // You can use the preload function like this
    $.preloadImages("images/logo.png", "images/logo-face.png", "images/mission.png");

    14. Test your code well
    jQuery has a unit testing framework called QUnit. Writing tests is easy and allows you to modify your code with confidence and ensure it still works as expected. Here's how it works:
    Copy code The code is as follows:

    //Split the test into several Module.
    module("Module B");

    test("some other test", function() {
    //Specify how many judgment statements need to be added to the test.
    expect (2);

    equals( true, false, "failing test" );
    equals( true, true, "passing test" );
    });
    Statement
    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
    Python vs. JavaScript: A Comparative Analysis for DevelopersPython vs. JavaScript: A Comparative Analysis for DevelopersMay 09, 2025 am 12:22 AM

    The main difference between Python and JavaScript is the type system and application scenarios. 1. Python uses dynamic types, suitable for scientific computing and data analysis. 2. JavaScript adopts weak types and is widely used in front-end and full-stack development. The two have their own advantages in asynchronous programming and performance optimization, and should be decided according to project requirements when choosing.

    Python vs. JavaScript: Choosing the Right Tool for the JobPython vs. JavaScript: Choosing the Right Tool for the JobMay 08, 2025 am 12:10 AM

    Whether to choose Python or JavaScript depends on the project type: 1) Choose Python for data science and automation tasks; 2) Choose JavaScript for front-end and full-stack development. Python is favored for its powerful library in data processing and automation, while JavaScript is indispensable for its advantages in web interaction and full-stack development.

    Python and JavaScript: Understanding the Strengths of EachPython and JavaScript: Understanding the Strengths of EachMay 06, 2025 am 12:15 AM

    Python and JavaScript each have their own advantages, and the choice depends on project needs and personal preferences. 1. Python is easy to learn, with concise syntax, suitable for data science and back-end development, but has a slow execution speed. 2. JavaScript is everywhere in front-end development and has strong asynchronous programming capabilities. Node.js makes it suitable for full-stack development, but the syntax may be complex and error-prone.

    JavaScript's Core: Is It Built on C or C  ?JavaScript's Core: Is It Built on C or C ?May 05, 2025 am 12:07 AM

    JavaScriptisnotbuiltonCorC ;it'saninterpretedlanguagethatrunsonenginesoftenwritteninC .1)JavaScriptwasdesignedasalightweight,interpretedlanguageforwebbrowsers.2)EnginesevolvedfromsimpleinterpreterstoJITcompilers,typicallyinC ,improvingperformance.

    JavaScript Applications: From Front-End to Back-EndJavaScript Applications: From Front-End to Back-EndMay 04, 2025 am 12:12 AM

    JavaScript can be used for front-end and back-end development. The front-end enhances the user experience through DOM operations, and the back-end handles server tasks through Node.js. 1. Front-end example: Change the content of the web page text. 2. Backend example: Create a Node.js server.

    Python vs. JavaScript: Which Language Should You Learn?Python vs. JavaScript: Which Language Should You Learn?May 03, 2025 am 12:10 AM

    Choosing Python or JavaScript should be based on career development, learning curve and ecosystem: 1) Career development: Python is suitable for data science and back-end development, while JavaScript is suitable for front-end and full-stack development. 2) Learning curve: Python syntax is concise and suitable for beginners; JavaScript syntax is flexible. 3) Ecosystem: Python has rich scientific computing libraries, and JavaScript has a powerful front-end framework.

    JavaScript Frameworks: Powering Modern Web DevelopmentJavaScript Frameworks: Powering Modern Web DevelopmentMay 02, 2025 am 12:04 AM

    The power of the JavaScript framework lies in simplifying development, improving user experience and application performance. When choosing a framework, consider: 1. Project size and complexity, 2. Team experience, 3. Ecosystem and community support.

    The Relationship Between JavaScript, C  , and BrowsersThe Relationship Between JavaScript, C , and BrowsersMay 01, 2025 am 12:06 AM

    Introduction I know you may find it strange, what exactly does JavaScript, C and browser have to do? They seem to be unrelated, but in fact, they play a very important role in modern web development. Today we will discuss the close connection between these three. Through this article, you will learn how JavaScript runs in the browser, the role of C in the browser engine, and how they work together to drive rendering and interaction of web pages. We all know the relationship between JavaScript and browser. JavaScript is the core language of front-end development. It runs directly in the browser, making web pages vivid and interesting. Have you ever wondered why JavaScr

    See all articles

    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 Article

    Hot Tools

    MinGW - Minimalist GNU for Windows

    MinGW - Minimalist GNU for Windows

    This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

    Dreamweaver Mac version

    Dreamweaver Mac version

    Visual web development tools

    MantisBT

    MantisBT

    Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

    WebStorm Mac version

    WebStorm Mac version

    Useful JavaScript development tools

    Zend Studio 13.0.1

    Zend Studio 13.0.1

    Powerful PHP integrated development environment