2010-06-14 37 views
16

Tôi muốn tìm một phần tử theo tên lớp. Tôi biết nó sẽ xuất hiện trong một div cha mẹ cụ thể, vì vậy thay vì tìm kiếm toàn bộ dom, tôi chỉ muốn tìm kiếm div cụ thể. Tôi đang cố gắng điều này, nhưng dường như không đúng cú pháp:Tìm một phần tử theo tên lớp, từ một phần tử gốc đã biết

var element = $("#parentDiv").(".myClassNameOfInterest"); 

cách nào đúng để làm điều đó?

Cảm ơn

Trả lời

36

Bạn đang ở rất gần. Bạn có thể làm:

var element = $("#parentDiv").find(".myClassNameOfInterest"); 

Ngoài ra, bạn có thể làm:

var element = $(".myClassNameOfInterest", "#parentDiv"); 

... mà bộ bối cảnh của đối tượng jQuery để các #parentDiv.

EDIT:

Ngoài ra, nó có thể nhanh hơn trong một số trình duyệt nếu bạn làm div.myClassNameOfInterest thay vì chỉ .myClassNameOfInterest.

+0

Phương pháp thứ hai thực sự được chuyển đổi sang phương thức đầu tiên bởi jQuery phía sau những cảnh. Phương pháp đầu tiên là cách xác nhận để làm điều đó. Bạn cũng chính xác liên quan đến việc thêm div để cho jQuery biết chỉ kiểm tra các div cho tên lớp, thay vì tất cả các phần tử. –

+0

@Mike - Tôi nghe nói rằng một ngày khác về jQuery chuyển đổi ví dụ thứ 2 sang ngày 1, vì vậy tôi đã xem nhanh nguồn. Chắc chắn dường như. Cám ơn vì đã xác nhận. : o) – user113716

+0

Điểm tốt cho các khía cạnh nhanh hơn và chậm hơn của hàm. – divinedragon

2
var element = $("#parentDiv .myClassNameOfInterest") 
+2

Tôi nghĩ điều này thực sự có thể chậm hơn. Tôi không nghĩ rằng điều này làm giảm bối cảnh tìm kiếm đối với '# parentDiv'. Tôi khá chắc chắn nó vẫn đang tìm kiếm DOM cho lớp, sau đó khi nó tìm thấy nó, nó sẽ kiểm tra xem nó có phải là hậu duệ của '# parentDiv' hay không. – user113716

+0

@patrick, bạn đã đúng. Như trong ví dụ của bạn, chỉ định tham số ngữ cảnh tùy chọn với bộ chọn id cung cấp hiệu suất tốt nhất ... '$ (". MyClassNameOfInterest "," #parentDiv ");' –

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