2010-05-05 41 views
9

cụ thể Làm cách nào để nối thêm một phần tử một chỉ mục cụ thể của các phần tử con bằng cách sử dụng phần bổ sung jQuery ví dụ: nếu tôi có:jQuery chắp thêm div vào một số

<div class=".container"> 
    <div class="item"><div> 
    <div class="item"><div> 
    <div class="item"><div> 
    <div class="item"><div> 
</div> 

và tôi muốn nối thêm một mục khác giữa mục thứ hai và thứ ba?

+5

Có lẽ lớp '= ".container" 'là một lỗi đánh máy? Đó là hợp lệ để có '.' trong một tên lớp, nhưng không phải cái gì bạn thường muốn làm. – bobince

Trả lời

19

Có một vài lựa chọn:

$("div.container div.item").eq(2).after($('your html')); 

$("div.container div.item:nth-child(3)").after($('your html')); 

$($("div.container div.item")[2]).after($('your html')); 

Các tùy chọn tương tự, nhưng chèn vào vị trí tương tự sử dụng "trước khi":

$("div.container div.item").eq(3).before($('your html')); 

$("div.container div.item:nth-child(4)").before($('your html')); 

$($("div.container div.item")[3]).before($('your html')); 
+1

+1 cho phương thức 'eq()' thay vì bộ chọn ': eq' không phải CSS (và do đó kém hiệu quả hơn). Tuy nhiên, hãy cẩn thận với ': nth-child'; không giống 'eq()' và phần lớn mọi thứ còn lại, chỉ số của nó là 1-based (argh). – bobince

+0

Đàn ông tôi luôn quên điều này. Cảm ơn cho những người đứng đầu lên! – user875139

4

("div.container div.item:eq(1)").after("<element to insert>")

-1
$('.container').children()[1].append('whatever'); 
+1

điều này sẽ không hoạt động vì [1] trả về đối tượng DOM gốc không biết về hàm 'append()' – jAndy

+2

Tôi nên tránh các câu hỏi jQuery. –

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