2012-06-05 30 views
33

Tôi đã tự hỏi và không thể nhận được bất kỳ tài liệu nào tốt nhất về sự khác biệt giữa $ .add và $ .append khi chúng tôi có một phần tử đơn lẻ để thêm hoặc thêm vào vùng chứa .

Cảm ơn trước

+7

* Địa chỉ: * http://api.jquery.com/add/; * Nối: * http://api.jquery.com/append/; hơn nữa: Thêm phần tử vào tập hợp các phần tử được so khớp. trong đó như Append: Chèn nội dung, được chỉ định bởi tham số, vào cuối mỗi phần tử trong tập hợp các phần tử đã so khớp. ** ** B-) –

+2

_ "không thể nhận được bất kỳ tài liệu nào tốt nhất" _ - Bạn nhìn ở đâu? Tài liệu jQuery giải thích rõ ràng ... – nnnnnn

+1

Tôi đã xem qua internet. và có tài liệu JQuery giải thích điều này. Nhưng không phải tất cả mọi người không phải là kỹ thuật để hiểu tất cả những gì được giải thích ở đó. Đó là lý do tại sao các diễn đàn này tồn tại. @nnnnnn –

Trả lời

22

Với đối tượng jQuery đại diện cho tập hợp các phần tử DOM, phương thức .add() xây dựng một đối tượng jQuery mới từ liên kết của các phần tử đó và các đối tượng được chuyển vào phương thức. Nhưng nó không chèn phần tử vào DOM, tức là sử dụng .add() phần tử sẽ được thêm vào DOM nhưng để xem nó trong trang bạn phải chèn nó vào trang bằng cách sử dụng phương thức insertion/append.

+0

Cảm ơn bạn đã giải thích. Nó khá hữu ích. –

+1

bạn có thể làm rõ thêm? bạn nói "... Nhưng nó không chèn phần tử vào DOM, tức là sử dụng' .add() 'phần tử sẽ được thêm vào DOM ..." Vâng, là nó, nó có được chèn vào DOM hay không? – chharvey

4

Thêm chỉ cần thêm các yếu tố để các đối tượng jquery, nó không thêm nó vào DOM

Nối thêm phần tử vào DOM như đứa trẻ.

28

Chúng hoàn toàn không liên quan.

.add()

Thêm yếu tố với tập hợp các yếu tố phù hợp.

ví dụ:

Nếu bạn muốn làm,

$('div').css('color':'red'); 
$('div').css('background-color':'yellow'); 
$('p').css('color':'red'); 

Sau đó, bạn có thể làm,

$('div').css('background-color':'yellow').add('p').css('color':'red'); 

Reference

.append()

Chèn nội dung, quy định bởi tham số, đến cuối mỗi phần tử trong tập hợp các phần tử đã so khớp.

$('div').append('p'); 

sẽ nối chọn p trên tất cả các lựa chọn div trong dom.

Reference

+0

Cảm ơn câu trả lời @Jashwant. Bây giờ điều này rõ ràng với tôi nữa. sau khi nhận được phản hồi. –

7

.add()

for example: 
<ul> 
    <li>list item 1</li> 
    <li>list item 2</li> 
    <li>list item 3</li> 
</ul> 
<p>a random paragraph</p> 

để thay đổi màu sắc của <li> yếu tố các <p> yếu tố sang màu đỏ, bạn có thể viết:

$("li").css("background-color", "green"); 
$("p").css("background-color", "green"); 

hoặc cô đặc bằng cách sử dụng. add()

$("li").add("p").css("background-color", "green"); 

.append()

tạo thành phần mới để thêm vào DOM và sẽ xuất hiện dưới dạng một phần tử con hiện có.

<div>one</div> 
<div>two</div> 

<ol> 
    <li>item1</li> 
    <li>item2</li> 
</ol> 

$("div").append('<p>'); 

sẽ cho kết quả:

<div>one</div> 
<p></p> 
<div>two</div> 
<p></p> 

<ol> 
    <li>item1</li> 
    <p></p> 
    <li>item2</li> 
    <p></p> 
</ol> 
+0

+1 Quá đẹp và gọn gàng. –

+0

tại sao một đoạn sẽ được thêm vào mỗi mục trong danh sách? họ không phải là div. – chharvey

+0

@tismle: Ý của bạn là thay đổi màu thành 'green?' Ngoài ra, kết quả Append() cũng không chính xác; bằng cách sử dụng Append() thêm một nút con, aka nó sẽ đặt phần tử P bên trong mỗi div không sau. – brooklynsweb

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