Chủ đề nổi bật
03/08/2018, 10:09

Selector trong jQuery

Trong bài này chúng ta sẽ tìm hiểu về Selector trong jQuery , đây là bài khá quan trọng và nó là tiền đề để học các bài tiếp theo, vì vậy hãy đọc ...

Trong bài này chúng ta sẽ tìm hiểu về Selector trong jQuery, đây là bài khá quan trọng và nó là tiền đề để học các bài tiếp theo, vì vậy hãy đọc qua nhé các bạn. 

Trước tiên chúng ta tìm hiểu cú pháp của Selector và liên tưởng với cú pháp viết CSS đã nhé.

1. Selector trong jQuery là gì?

Có bao giờ bạn nghe câu nói truy vấn đối tượng HTML bằng jQuery chưa? Đó chính là ý nghĩa chính của Selector trong jQuery đấy, nghĩa là ta sẻ sử dụng cú pháp của Selector để duyệt qua tất cả các thẻ HTML và tìm một thẻ HTML đặc biệt nào đó.

Trong một file HTML sẽ có rất nhiều thẻ HTML và chúng được lồng với nhiều cấp khác nhau, mỗi thẻ sẽ có các thuộc tính (property) và một tên thẻ (tag name). Với số lượng thẻ nhiều như vậy nên việc trùng tên thẻ hoặc trùng tên thuộc tính rất hay xảy ra, vì vậy ta cần một cách nào đó để có thể tìm ra chúng. Với Javascript thì ta có thể sử dụng DOM nhưng trong jQuery thì ta có một cái tên khác đó là Selector.

Để các bạn dễ hiểu thì mình có một ví dụ như sau, giả sử mình có một đoạn mã HTML như bên dưới:

<div id="container">
    <h1 id="title"></h1>
    <p class="description">

    </p>
</div>

Hãy truy vấn đến thẻ h1 có id="title".

Sử dụng Javascript:

var h1 = document.getElementById('title');

Sử dụng jQuery:

var h1 = $('#title');

Như vậy trong jQuery thì ta sử dụng cú pháp của CSS để truy vấn và đây cũng chính là cú pháp của Selector trong jQuery:

var element = $('CSS_SELECTOR');

Ví dụ: Tìm tất cả các thẻ HTML có class="desc".

var elements = $('.desc');

2. Duyệt các kêt quả trả về của Selector

Vấn đề duyệt qua các kết quả của Selector rất quan trọng vì hầu như các bạn sử dụng mà không hiểu nguyên tắc của nó. 

Selector theo ID:

Nếu bạn truy vấn theo ID thì kết quả trả về là một đối tượng HTML, lúc này nêu trong tài liệu HTML tồn tại ID đó thì khi bạn đếm số phần tử (length) thì kết quả trả về 1, ngược lại sẽ trả về 0.

Ví dụ: XEM DEMO

Cho thẻ div#container như sau:

<div id="container"></div>

Lúc này đoạn code sau có kết quả = 1 vì id container tồn tại.

var element = $('#container');
alert(element.length);

Nhưng đoạn code sau có kết quả = 0 vì id id_not_found không tồn tại.

var element = $('#id_not_found');
alert(element.length);

Selector theo Class:

Nếu truy vấn theo class thì kết quả sẽ trả về một mảng các phần tử và mỗi phần tử là một đối tượng HTML, lúc này nếu trong tài liệu HTML không tồn tại class đó thì khi bạn đếm số phần tử (length) thì có kết trả về 0, ngược lại kết quả trả về tổng số thẻ HTML có chứa class đó.

Ví dụ: XEM DEMO

Cho đoạn mã HTML sau:

<div class="container">
    Container1
</div>
<div class="container">
    Container2
</div>
<div class="container">
    Container3
</div>
<div class="container">
    Container4
</div>

Lúc này đoạn code sau sẽ có kết quả là 4 vì ta có bốn phần tử chứa class container.

var element = $('.container');
alert(element.length);

Nếu bạn thực hiện thao tác gán (set) thì nó sẽ có tác dụng cho toàn bộ kết quả, nhưng nếu bạn thực hiện thao tác lấy (get) thì nó chỉ có tác dụng với kết quả đầu tiên, vì vậy trường hợp get ta phải sử dụng vòng lặp để lặp qua từng phần tử trong kết quả trả về.

Ví dụCho đoạn mã HTML sau:

<div class="container">
    Container1
</div>
<div class="container">
    Container2
</div>
<div class="container">
    Container3
</div>
<div class="container">
    Container4
</div>

Gán background màu đỏ cho class container.

XEM DEMO

// Truy vấn đối tượng
var element = $('.container');

// Gán CSS background màu đỏ
$(element).css({
    background : "red"
});

Lấy giá trị chứa trong thẻ có class là container.

XEM DEMO

// Truy vấn đối tượng
var element = $('.container');

// Lấy value
var value = $(element).html();

alert(value);

Chạy demo bạn sẽ thấy nó chỉ lấy giá trị của phần tử đầu tiên bởi vì kết quả nó trả về là một mảng. Lúc này để lấy tất cả các giá trị thì ta phải sử dụng vòng lặp.

XEM DEMO

// Truy vấn đối tượng
var element = $('.container');

// Lấy value
var value = ';

// Dùng vòng lặp
for (var i = 0; i <= element.length; i++){
    value += $(element[i]).text();
}

alert(value);

Các trường hợp khác:

Các trường hợp khác sẽ có cách xử lý theo hai nguyên tắc trên, nghĩa là nếu selector chỉ trả về một phần tử thì giống với selector theo ID và nếu trả về nhiều phần tử thì giống với selector theo Class.

3. Lời kết

Như vậy là mình đã giới thiệu xong khái niệm Selector trong jQuery và một số lưu ý khi sử dụng Selector. Vì bài hơi dài nên nếu trình bày luôn danh sách các Selector thì rất khó theo dõi, vì vậy bài tiếp theo mình sẽ nói về danh sách các Selector.

BÀI KẾ SAU
BÀI KẾ TIẾP

Nguồn: code24h.com

Bài liên quan
Mới nhất

Hiệu ứng trong jQuery

jQuery cung cấp một giao diện đơn giản để thực hiện các loại hiệu ứng tuyệt vời đa dạng. Các phương thức jQuery cho phép chúng ta áp dụng nhanh chóng các hiệu ứng phổ biến với cấu hình tối thiểu. Chương này sẽ bàn luận tất cả phương thức jQuery quan trọng để tạo các Visual Effect. Hiển ...

Cơ bản về jQuery

jQuery là một Framework được xây dựng dựa trên các tính năng của JavaScript. Vì thế trong khi phát triển các ứng dụng sử dụng jQuery, bạn có thể sử dụng tất cả các hàm và các tính năng khác được bổ trợ trong JavaScript. Chương này sẽ giải thích hầu hết khái niệm cơ bản thường được sử dụng ...

jQuery Ajax

AJAX là từ viết tắt của Asynchronous JavaScript and XML và công nghệ này giúp chúng ta tải dữ liệu từ Server mà không cần Refresh trình duyệt. Nếu bạn cảm thấy mới mẻ với AJAX, mình đề nghị bạn nên truy cập trang: Ajax Tutorial trước khi theo dõi những gì được đề cập trong chương này. ...

Plugins trong jQuery

Plug-in là một phần của code được viết theo một JavaScript file chuẩn. Những file này cung cấp các phương thức jQuery hữu ích mà có thể được sử dụng cùng với các phương thức jQuery Library. Có rất nhiều jQuery plug-in có sẵn để bạn có thể tải về từ kho lưu tại: http://jquery.com/plugins. ...

Xử lý sự kiện trong jQuery

Chúng ta có khả năng tạo các trang web động bởi sử dụng các Sự kiện (Event). Các sự kiện là các hành động mà có thể được phát hiện bởi ứng dụng web của bạn. Sau đây ví dụ một số sự kiện: Khi các sự kiện này được kích hoạt, bạn có thể sử dụng các hàm custom để phản hồi bất kỳ những gì ...

Thao tác DOM trong jQuery

jQuery cung cấp các phương thức để thao tác với DOM một cách cực kỳ hiệu quả. Bạn không cần viết những đoạn code quá dài để sửa đổi giá trị thuộc tính của bất kỳ phần tử nào hoặc để trích (extract) các đoạn HTML code từ một thẻ p hoặc div. jQuery cung cấp các phương thức như .attr(), ...

Thuộc tính trong jQuery

Một số thành phần cơ bản nhất, chúng ta có thể thao tác với các phần tử DOM, là các đặc tính và các thuộc tính được gán cho các phần tử đó. Hầu hết những thuộc tính này là có sẵn thông qua JavaScript như là các thuộc tính DOM node. Một số thuộc tính phổ biến hơn là: Xem xét đoạn HTML ...

CSS Selector trong jQuery

Thư viện jQuery hỗ trợ gần như tất cả các Selector trong Cascading Style Sheet (CSS), khi đã được đề cập trên World Wide Web Consortium. Sử dụng thư viện jQuery, các nhà lập trình có thể nâng cấp các Website của họ mà không cần lo lắng về các trình duyệt và phiên bản của nó, miễn là các ...

jQuery là gì

jQuery là gì? jQuery là một thư viện kiểu mới của JavaScript, được tạo bởi John Resig vào năm 2006 với một phương châm tuyệt vời: Write less, do more - Viết ít hơn, làm nhiều hơn . jQuery làm đơn giản hóa việc truyền tải HTML, xử lý sự kiện, tạo hiệu ứng động và tương tác Ajax. Với ...

Truy cập DOM trong jQuery

jQuery là một công cụ vô cùng mạnh mẽ. Nó cung cấp các phương thức đa dạng để truy cập DOM (DOM Traversal Method), giúp chúng ta chọn các phần tử trong một tài liệu một cách ngẫu nhiên hoặc theo phương thức liên tục. Hầu hết DOM Traversal Method không sửa đổi đối tượng jQuery và chúng được ...