2013-07-19 30 views
42

Làm cách nào để chọn một lớp từ đối tượng đó this?Jquery chọn loại này +

$(".class").click(function(){ 
     $("this .subclass").css("visibility","visible"); 
}) 

Tôi muốn chọn một $(this+".subclass"). Làm thế nào tôi có thể làm điều này với Jquery?

Trả lời

83

Sử dụng $(this).find(), hoặc chuyển thông tin này trong bối cảnh, sử dụng jQuery context with selector.

Sử dụng $ (this) .find()

$(".subclass").click(function(){ 
    $(this).find(".subclass").css("visibility","visible"); 
}); 

Sử dụng this trong bối cảnh, $(selector, context), nó sẽ trong nội bộ gọi tìm chức năng, vì vậy tốt hơn để sử dụng tìm thấy trên vị trí đầu tiên.

$(".subclass", this).click(function(){ 
    $(this).find(".subclass").css("visibility","visible"); 
}); 
+1

Nếu 'find()' đang được gọi nội bộ trong phương thức thứ hai, tại sao bạn vẫn gọi nó theo cách thủ công? – shaneparsons

11

Sử dụng find()

$(this).find(".subclass").css("visibility","visible"); 
+0

+1 là câu trả lời đúng đầu tiên. – zurfyx

20

Có lẽ cái gì đó như:

$(".subclass", this).css("visibility","visible"); 

Thêm this sau lớp $(".subclass", this)

+0

Đây là giải pháp thay thế tuyệt vời. sử dụng ngữ cảnh +1 – iConnor

+0

@Connor Đây là giải pháp thay thế nhưng không quá tuyệt vời. Dù sao +1 quá –

+0

Tôi đánh giá cao ý kiến ​​của bạn @roasted – iConnor

3

gì bạn đang tìm kiếm này là bên dưới:

$(".yourclass", this); 

phương thức find() thực hiện tìm kiếm mọi lúc trong bộ chọn.

+0

Điều này thực sự giúp tôi khi cố gắng animate một SVG cho một cái gì đó và tìm thấy không làm việc như thế nào tôi cần nó. – Xander

1

nếu bạn cần một thủ thuật sử dụng hiệu suất: $(".subclass", this);

1

Vâng sử dụng tìm là lựa chọn tốt nhất ở đây

chỉ đơn giản là sử dụng như thế này

$(".class").click(function(){ 
     $("this").find('.subclass').css("visibility","visible"); 
}) 

và nếu có nhiều lớp học với các lớp cùng tên của nó luôn luôn tốt hơn để cung cấp cho các tên lớp của lớp cha mẹ như thế này

$(".parent .class").click(function(){ 
      $("this").find('.subclass').css("visibility","visible"); 
    })