2012-07-05 49 views
6

tôi có mã html này:add lớp cho trẻ em - jquery

<div class="rotation"> 
    <ul> 
    <li><img src="..." alt="" /></li> 
    <li><img src="..." alt="" /></li> 
    <li><img src="..." alt="" /></li> 
    </ul> 
</div> 

tôi cần phải thêm lớp để ul, tôi muốn làm điều đó bằng jquery, vì ul, li được tạo ra mà không cần bất kỳ lớp.
Giả sử thẻ ul cần phải là <ul class="image_rotation">. Tôi làm nó như thế nào?

Trả lời

11

Read about jQuery's addClass method here.

$('.rotation ul').addClass('image_rotation'); 

Đoạn mã trên sẽ bổ sung thêm một lớp của image_rotation cho mọi ul đó là một hậu duệ của bất kỳ phần tử với lớp rotation.

Nếu bạn muốn nhắm mục tiêu chỉ ul s đó là một đứa trẻ ngay lập tức của một phần tử với một lớp rotation, sử dụng child selector (>):

$('.rotation > ul').addClass('image_rotation'); 

Nếu bạn chỉ muốn làm điều này trên một .rotation yếu tố , bạn nên cho nó một id và chọn nó theo cách đó. Ví dụ:

$('#rotation ul'); 

<div id="rotation" class="rotation"> 
    <ul> 
     <li><img src="..." alt="" /></li> 
     <li><img src="..." alt="" /></li> 
     <li><img src="..." alt="" /></li> 
    </ul> 
</div> 
+0

Đây là tốt hơn so với google. Tôi đã viết câu hỏi của mình và sau 30 giây tôi nhận được câu trả lời. Trước đó tôi đã tìm kiếm điều này trong google cho unleast 10 phút. Rất tốt câu trả lời btw. – miszczu

+0

@miszczu Cảm ơn bạn và có, trang web này rất hữu ích. Một mẹo thân thiện: hãy cẩn thận đặt câu hỏi như thế này. Chúng tôi có thể upvote hoặc downvote câu hỏi của bạn tùy thuộc vào bao nhiêu nỗ lực nghiên cứu bạn đã đưa vào và làm thế nào rõ ràng là câu hỏi. Câu hỏi này là rất rõ ràng, nhưng tôi đã thấy trước đó rằng bạn có một downvote (nó trông giống như của bạn trở lại 0 bây giờ). Điều này có lẽ là do bạn không nỗ lực nghiên cứu nào. Hãy nhớ hiển thị những gì bạn đã thử cho đến nay và tài liệu bạn đã xem. Đôi khi, sau khi làm điều đó, bạn có thể trả lời câu hỏi cho chính mình! cheers – lbstr

1
$(".rotation").children("ul").addClass("MyClass"); 
+0

'children' có chữ thường c và bạn đang thiếu' $ 'hoặc' jQuery' trước '(" .rotation ")' – lbstr

+0

@lbstr - yes được cập nhật cảm ơn vì đã viết .. –

2

Nó khá dễ dàng, chỉ cần làm:

$(document).ready(function(){ 
    $('div.rotation ul').addClass('image_rotation'); 
}); 
6

tôi muốn đề nghị giữ nó đơn giản:

$('div.rotation ul').addClass('image_rotation'); 

Hoặc, nếu bạn có nhiều ul yếu tố bên trong phần tử div.rotation, bạn có thể chỉ định ul đầu tiên:

$('div.rotation ul:first').addClass('image_rotation'); 

cuối cùng ul:

$('div.rotation ul:last').addClass('image_rotation'); 

Hoặc một ul của arbitray chỉ số zero-based, ví dụ: số thứ ba ul (có chỉ mục là 2):

$('div.rotation ul:eq(2)').addClass('image_rotation'); 

hay:

$('div.rotation ul').eq(2).addClass('image_rotation'); 

Hoặc một đứa trẻ ngay lập tức (vì vậy không ul yếu tố lồng trong bất kỳ yếu tố khác):

$('div.rotation > ul').addClass('image_rotation'); 

Tài liệu tham khảo:

3

tất cả những gì bạn cần là tìm UL trong div và gán cho lớp của bạn. bạn có thể nhìn thấy nó trong demo này, nhưng mã cho HTML của bạn dưới

$(document).ready(function(){ 
    $('ul','div.rotation').each(function(index){ 
     $(this).addClass('image_rotation'); 
    }); 
});​ 
2
$(".rotation ul").attr("class","image_rotation"); 
Các vấn đề liên quan