2013-06-06 28 views
6

Tôi đang sử dụng mã như $('.elem',elem), $('.elem',elem).tabs().

$(".elem") được sử dụng để chọn các thành phần có lớp đó.

Nhưng điều tiếp theo sau dấu phẩy là gì? Việc sử dụng nó là gì?

+2

Đó là [chọn bối cảnh] (http: // api.jquery.com/jQuery/#jQuery1), tương đương với '$ (elem) .find ('. elem');' – billyonecan

+0

Tôi đã sử dụng jQuery trong gần 2 năm nay b ut đã không chú ý nhiều đến điều đó. :) +1 –

Trả lời

11

$('.elem',elem)$(elem).find('.elem'). Trong thực tế, đó là những gì jQuery làm với nó dưới vỏ bọc. Nó tìm tất cả các phần tử với lớp "elem" là các phần tử con của phần tử elem.

Điều này được bao gồm trong the API documentation. Cũng đáng để dành một giờ chỉ đọc từ đầu đến cuối. Có rất nhiều thứ hữu ích trong đó mà không được biết đến nhiều. :-) (Tôi không nói đây là một trong số họ [Tôi không phải là một fan hâm mộ của bản thân mình, một số folks được], chỉ cần nói chung có rất nhiều điều hữu ích trong đó.)

+0

có vẻ như không có lợi thế để sử dụng ngữ cảnh trên find(), nó có đúng không? –

+4

@roasted: Phải. * Vâng *, tôi cho rằng một số sẽ chỉ ra rằng nó ít ký tự hơn. :-) Nhưng khi tôi nói "đó là những gì jQuery làm với nó dưới bao gồm" Tôi có nghĩa là chính xác rằng: Nó nghĩa đen phát hiện rằng bạn đã thực hiện '$ ('. Elem', elem)' và đi đến '$ (elem) .find ('. elem') '. Vì vậy, dạng '$ ('. Elem', elem)' chỉ thêm một lời gọi hàm (không phải là điều thực sự quan trọng). –

4

Đây là ngữ cảnh mà việc tìm kiếm được thực hiện.

Đó là cùng hơn

$(elem).find('.elem') 

Xem documentation here

0

Tham số thứ hai được chuyển đến hàm jQuery xác định phạm vi hoặc ngữ cảnh của bộ chọn đầu tiên.

Nó yêu cầu jQuery tìm tất cả các phần tử có một lớp là elem trong phần tử được cung cấp trong thông số thứ hai. Các phần tử có lớp học là .elem bên ngoài elem sẽ không được chọn.

Với HTML sau:

<div id="included"> 
    <input/> 
    <input/> 
</div> 
<div id="excluded"> 
    <input/> 
    <input/> 
</div> 

Những selectors cho kết quả sau:

console.log($("input", "#included").length); //2 only those inside included 
console.log($("input").length); //4 all inputs 

làm việc Ví dụ:http://jsfiddle.net/LE6eE/

+0

Tôi đã sử dụng bộ chọn với phương thức .find(). nhưng $ (". elem", elem) đang hoạt động tốt hơn .find(). Vậy phương thức find() có hữu ích hay không? – Natesan

+0

Tôi không chắc chắn có bất kỳ điều gì mà trình chỉ định ngữ cảnh không thể thực hiện được không. Tôi đoán 'tìm thấy 'trực quan hơn một chút và dễ đọc hơn. –

Các vấn đề liên quan