2010-04-13 40 views
5

Tôi đã gặp mã jQuery sau nhưng không thể hiểu được. Mã sau đây, đặc biệt là phần "$ ([])" trong dòng cuối cùng có nghĩa là gì?

var instrument = $("#instrument"), 
    quantity = $("#quantity"), 
    orderType = $("#orderType"), 
    price = $("#price"), 
    validityDate = $("#validityDate"), 
    allFields = $([]).add(instrument).add(quantity).add(orderType).add(price).add(validityDate) 

Trả lời

10

Có vẻ như nó đang xác định một mảng, sau đó add() nhập các phần tử DOM vào đó. Từ hướng dẫn:

Cho một đối tượng jQuery đại diện một tập hợp các phần tử DOM, các .add() phương pháp xây dựng một đối tượng jQuery mới từ sự kết hợp của những yếu tố và những người được truyền vào phương pháp . Đối số cho .add() có thể là khá nhiều bất kỳ điều gì mà $() chấp nhận, bao gồm biểu thức chọn biểu tượng chọn jQuery, tham chiếu thành phần tử DOM hoặc đoạn mã HTML.

[] là một mảng javascript trống. Là frunsi notes, đây không phải là cách sử dụng chính xác và định nghĩa [] là không bắt buộc để tạo một tập hợp các phần tử trống, trong 1.4 $() sẽ làm ths cho bạn.

7

Nó tạo bộ jQuery trống. Loại sử dụng này là sai, mặc dù nó có thể hoạt động. [] là không cần thiết.

Đúng là chỉ $().

Việc trả lại Set Rỗng

Tính đến jQuery 1.4, cách gọi phương thức không có đối số jQuery() trả về một bộ jQuery trống. Trong các phiên bản trước của jQuery, điều này sẽ trả về một tập hợp chứa nút tài liệu.

http://api.jquery.com/jQuery/

2

Điều đó sẽ tạo ra một đối tượng jQuery trống - ví dụ với một bộ sưu tập từ 0 các nút DOM tham chiếu.

Thông thường, bạn sẽ tìm thấy hàm jQuery $ áp dụng cho bộ chọn CSS, một hoặc nhiều nút từ DOM. Trong trường hợp cụ thể này, cuối cùng của ba "quá tải" này được sử dụng, để xây dựng một đối tượng jQuery rỗng từ một mảng trống, sau đó các nút DOM mới được thêm vào bằng cách sử dụng add().

mẫu mã đặc biệt của bạn là một chút dài dòng, tuy nhiên, như cùng có thể đạt được như thế này:

var allFields = $("#instrument, #quantity, #orderType, #price, #validityDate");