2011-08-26 28 views
5

tôi có cấu trúc này html cơ bản:jQuery: lặp qua các yếu tố lồng nhau sử dụng mỗi

<div class=a> 
    <div class=m></div> 
    <div class=m></div> 
</div> 
<div class=b> 
    <div class=m></div> 
    <div class=m></div> 
</div> 

bây giờ tôi muốn để lặp qua tất cả của m mà còn muốn biết nếu tôi đang ở a hoặc b. sử dụng cú pháp jquery cơ bản mỗi khi tôi không tìm thấy điều này.

$('.m').each(function(index) { 
    // how do i know if this m is part of a or b ? 
}); 

Trả lời

8

$(this).parent().hasClass("a") hoặc $(this).parent().hasClass("b")

0
$('.m').each(function(index) { 
    this.parentNode.getAttribute("class"); 
}); 
0

Ví dụ, kiểm tra phụ huynh là .a

if($(this).parent().is('.a')) 
1
if($(this).parent().hasClass('a')) 

Và tương tự cho b, cần làm việc.

0

Bạn có thể sử dụng phương pháp .closest:

var $this = $(this); 
if ($this.closest("a").length === 1) { 
    alert("I'm in an a div"); 
} 
else { 
    alert("I'm in a b div"); 
} 
1

Nếu bạn quan tâm, sau đó tôi muốn tách các selectors như thế này:

$('.a .m').each(function(index) { 
    // now I'm on .a items 
}); 

$('.b .m').each(function(index) { 
    // now I'm on .b items 
}); 
0

Bạn có thể kiểm tra các lớp học của phần tử cha mẹ bên chức năng của bạn để xác định xem bạn có đang ở 'a' hoặc 'b'

$('.m').each(function() { 
    var parentClass = $(this).parent().attr('class'); 
}); 

Vì vậy, giá trị parentClass var phải có giá trị eithe r 'a' hoặc 'b'

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