2010-11-16 24 views
47

Tôi đang cố tìm văn bản bên trong phần tử có lớp là myClass1 HOẶC myClass2.Tìm phần tử có lớp 1 hoặc lớp 2

var myText = $(this).find('.myClass1:first').text(); 

Điều này làm việc tốt nhưng tôi không chắc chắn nếu/làm thế nào tôi có thể kiểm tra một trong 2 lớp (phần tử của tôi sẽ chỉ có một lớp trong số 2 tôi đã đề cập).

Cảm ơn sự giúp đỡ của bạn!

+2

bạn có muốn chỉ có một kết quả (* kết quả đầu tiên *) không? hoặc đầu tiên của mỗi (* hai kết quả *)? –

Trả lời

63

Nếu bạn muốn là người đầu tiên tìm thấy (nhưng chỉ có một) sử dụng

var myText = $(this).find('.myClass1,.myClass2').eq(0).text(); 

Nếu bạn muốn là người đầu tiên của từng loại (hai kết quả) sau đó nhìn vào câu trả lời cung cấp bởi @jelbourn.

+2

đây chính xác là những gì tôi đã theo dõi, nhưng sẽ lưu ý các đề xuất khác cũng như nhu cầu trong tương lai :) cảm ơn tất cả mọi người – ale

24

Bạn có thể tách selectors của bạn bằng dấu phẩy để tạo ra một danh sách chứa tất cả các yếu tố với một trong hai lớp (hoặc với cả hai):

var elements = $(this).find('.myclass1:first, .myclass2:first'); 
+0

cảm ơn đề xuất :) – ale

4

Sử dụng một câu lệnh if và jQuery hasClass() chức năng:

http://api.jquery.com/hasClass/

Nó có thể trông giống như sau:

if($(this).hasClass('myClass1') || $(this).hasClass('myClass2')) { 
    myText = $(this).text(); 
} else { 
    myText = null; 
} 
Các vấn đề liên quan