2010-09-10 32 views

Trả lời

12

Các huyền diệu $() chức năng của jQuery có thể mất khá nhiều bất cứ điều gì bạn sẽ làm trong thường xuyên CSS để định dạng một tập hợp các yếu tố này. Trong trường hợp của bạn, điều này sẽ thực hiện thủ thuật:

$('#myElement a.myElementLink'); 

Chỉ định yếu tố nào sẽ có một lớp cụ thể (ví dụ: a.class vs .class) sẽ nhanh hơn nhiều nếu có thể.

Bạn cũng có thể vượt qua đối số thứ hai, được gọi là bối cảnh đến chức năng jQuery để đưa ra:

$('a.myElementLink', '#myElement'); 

Mà về cơ bản nói "tìm kiếm đối số 1 trong vòng tranh luận thứ 2"

+0

chính xác là nó, hoặc nếu bạn chỉ muốn các phần tử bên trong 'ul' encase bạn có vài' ul' trong myElement rồi thả một '>' vào trong đó như sau: '$ ('# myElement> a.myElementLink');' – RobertPitt

+0

@Robert, điều đó sẽ không hoạt động vì các phần tử * li * là các con ngay lập tức của phần tử * ul * –

+0

Tôi đã bỏ lỡ phần thứ hai của bạn ở đây (đã chỉnh sửa và thêm vào sau sự thật?) Giống như câu trả lời của tôi. Mà tôi sẽ xóa. Sử dụng bộ chọn ngữ cảnh ('điều', 'điều') là một thói quen tốt hơn, theo ý kiến ​​của tôi, hơn là chỉ tạo một bộ chọn CSS cụ thể hơn như trong ví dụ đầu tiên của bạn, vì đối số thứ hai có thể lấy JavaScript "this". –

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