2010-11-22 22 views
6

Tôi có một phương thức jQuery mà tôi muốn chắp thêm phần tử $ (this) vào.

Mã của tôi là

$("#actions ul").append($(this)); 

Tuy nhiên điều này dường như để làm bất cứ điều gì. Sử dụng dòng

.append($(this).html()) 

không hoạt động nhưng chỉ lấy con của $ (this) (div) không phải toàn bộ phần tử (li).

Tôi có thể đang làm điều gì đó mang tính đạo đức, hy vọng ai đó có thể chỉ ra điều này với tôi.

+0

Chào mừng bạn đến với Stack Overflow !! Chúng ta cần xem thêm mã. $ (Này) đến từ đâu? sự kiện nhấp chuột, chuột qua? Ở đâu? –

Trả lời

7

Mà không biết chính xác những gì this đề cập đến, lý do duy nhất tôi có thể nghĩ đến cho $(this).html() để làm việc và không $(this) là phương pháp cũ tạo ra một nguyên tố mới từ mã html trong khi phụ $(this) sẽ di chuyển phần tử.

Xem nếu dưới sửa chữa vấn đề của bạn:

$("#actions ul").append($(this).clone()); 
+0

Cảm ơn bạn đó là hàm .clone() mà tôi đã bỏ lỡ –

0

Không rõ ràng những gì $(this) đề cập đến, nhưng nếu đó là phần tử con của phần tử bạn muốn thì $(this).parent() sẽ nhận được phần tử cha bạn đang theo dõi.

+0

chắp thêm() chấp nhận đối tượng chuỗi, phần tử hoặc jQuery, vì vậy .append ($ (this) .parent()) là đủ. Thêm vào đó, việc thêm một đối tượng jQuery sẽ di chuyển phần tử, thay vì nhân bản nó trong trường hợp $ (this) .parent(). Html(). –

+0

@ box9 - Cảm ơn sự chỉnh sửa, tôi đã không nhận ra rằng về phụ thêm(). Tôi đã gỡ bỏ phần đó khỏi câu trả lời của tôi rồi giữ nó chính xác. – mikel

0

Có vẻ như this được đặt thành bộ chọn tìm số <div> thay vì <li>. Bạn có thể thay đổi bộ chọn hoặc, như miket2e gợi ý, sử dụng .parent() thay thế. Lưu ý: bạn không cần phải sử dụng .html() cũng vì the .append function có thể lấy một chuỗi HTML hoặc một đối tượng jQuery.

Nếu bạn đăng giá trị this, chúng tôi có thể cung cấp câu trả lời cụ thể hơn.

0

Trên thực tế bạn muốn sử dụng appendTo, điều này sẽ lấy toàn bộ phần tử.

$(this).appendTo("#actions ul"); 
Các vấn đề liên quan