jQuery Traversal - phương thức not()

Mô hình

Loại bỏ đoạn văn có id là "selected" từ tập hợp tất cả các đoạn văn:

$("p").not("#selected")

Hãy thử trực tiếp

Định nghĩa và cách sử dụng

not() Loại bỏ phần tử từ tập hợp khớp.

Cú pháp 1

.not(selector)
Tham số Mô tả
selector Giá trị chuỗi, chứa biểu thức bộ lọc để khớp phần tử.

Cú pháp 2

.not(element)
Tham số Mô tả
element Một hoặc nhiều phần tử DOM cần loại bỏ khỏi tập hợp khớp.

Cú pháp 3

.not(function(index))
Tham số Mô tả
function(index) Hàm kiểm tra mỗi phần tử trong tập hợp. this là phần tử DOM hiện tại.

Giải thích chi tiết

Nếu cung cấp một đối tượng jQuery biểu thị tập hợp phần tử DOM, phương thức .not() sẽ tạo một đối tượng jQuery mới từ tập hợp con của phần tử khớp. Bộ lọc được áp dụng sẽ kiểm tra mỗi phần tử; các phần tử không khớp với bộ lọc sẽ được bao gồm trong kết quả.

Hãy suy nghĩ về trang web này với danh sách đơn giản:

<ul>
  <li>mục danh sách 1</li>
  <li>mục danh sách 2</li>
  <li>mục danh sách 3</li>
  <li>mục danh sách 4</li>
  <li>mục danh sách 5</li>
</ul>

Chúng ta có thể áp dụng phương pháp này cho tập hợp mục danh sách:

$('li').not(':even').css('background-color', 'red');

Hãy thử trực tiếp

Kết quả của cuộc gọi này là đặt nền đỏ cho mục 2 và 4, vì chúng không khớp với bộ lọc (nhớ lại, :even và :odd đều sử dụng index dựa trên 0).

Loại bỏ phần tử cụ thể

Phiên bản thứ hai của phương thức .not() cho phép chúng ta loại bỏ các phần tử từ tập hợp khớp, giả sử rằng chúng ta đã tìm thấy các phần tử đó bằng cách khác. Ví dụ, tưởng tượng một danh sách đã áp dụng id cho một trong các mục:

<ul>
  <li>mục danh sách 1</li>
  <li>mục danh sách 2</li>
  <li id="notli">mục danh sách 3</li>
  <li>mục danh sách 4</li>
  <li>mục danh sách 5</li>
</ul>

Chúng ta có thể sử dụng hàm getElementById() của JavaScript nguyên sinh để đọc mục danh sách thứ ba, sau đó xóa nó khỏi đối tượng jQuery:

$('li').not(document.getElementById('notli')).css('background-color', 'red');

Hãy thử trực tiếp

Câu lệnh này thay đổi màu nền của mục 1, 2, 3 và 5. Chúng ta có thể hoàn thành điều này bằng biểu thức jQuery đơn giản hơn, nhưng kỹ thuật này rất hữu ích khi ví dụ như các thư viện khác cung cấp tham chiếu đến các phần tử DOM nguyên sinh.

Đối với jQuery 1.4, phương thức .not() có thể sử dụng hàm làm tham số, tương tự như phương thức .filter(). Các phần tử mà hàm trả về true sẽ bị loại bỏ khỏi tập lọc; tất cả các phần tử khác sẽ được bao gồm.