2010-02-11 9 views
134

Tôi có một hộp văn bản nhất định và tôi muốn thêm một div sau đó. Tôi đã thử chức năng .append() nhưng chỉ thêm div vào phần tử.jQuery: Thêm phần tử sau phần tử khác

Ví dụ, tôi có:

và tôi muốn thay đổi điều đó thành:

<input type="text" id="bla" /><div id="space"></div> 

Trả lời

228

hãy thử sử dụng after() phương pháp:

$('#bla').after('<div id="space"></div>'); 

Documentation

+5

Các phương thức .after() và .insertAfter() thực hiện cùng một tác vụ. – Rifat

+7

Đó là chính xác, nhưng nó phụ thuộc vào cách bạn thích mã nó. Tôi thường đã chọn đầu vào '#bla', sau đó thêm nội dung bổ sung sau đó. Hoàn toàn là sở thích của tôi mặc dù, tôi không chắc chắn liệu một trong hai phương pháp có một lợi ích tốc độ. – Rowan

6

Trước hết, input yếu tố không nên có một thẻ đóng (từ http://www.w3.org/TR/html401/interact/forms.html#edef-INPUT: End thẻ: bị cấm ).

Điều thứ hai, bạn cần có chức năng after(), không phải là append().

+0

Đúng, nhưng đó là những gì xảy ra khi tôi thử .append) chức năng (. – skerit

+2

Nếu đó là XHTML thì phần tử đầu vào phải được đóng (nhưng không phải bằng thẻ kết thúc). – CiscoIPPhone

+2

Trong HTML4 ' 'không nên đóng. –

30

thử

.insertAfter() 

đây

$(content).insertAfter('#bla'); 
+12

Không nên mã của bạn giống như '$ ('

') .insertAfter ('# bla')' thay vì '$ ('# bla'). InsertAfter (content);'? – Rowan

0

Giải Quyết jQuery: Thêm yếu tố sau một yếu tố

<script> 
$("p").append("<strong>Hello</strong>"); 
</script> 

HOẶC

<script type="text/javascript"> 
jQuery(document).ready(function(){ 
jQuery (".sidebar_cart") .append("<a href='http://#'>Continue Shopping</a>"); 
}); 
</script>