Tôi có HTML như sau:Sử dụng JavaScript insertBefore() để chèn trước một TextNode?
<div id="move-me">
<a href="#">I'm a link</a>
</div>
<div id="new-parent">
Some plain text.
</div>
Tôi đang cố gắng để viết mã JavaScript mà sẽ di chuyển toàn bộ # chuyển-me div bên trong div # mới phụ huynh, trên văn bản, như vậy:
<div id="new-parent">
<div id="move-me">
<a href="#">I'm a link</a>
</div>
Some plain text.
</div>
đây là Javascript tôi có:
function moveDiv() {
var moveable = document.getElementById('move-me');
var newParent = document.getElementById('new-parent');
newParent.parentNode.insertBefore(moveable, newParent.firstChild);
}
tôi đang sử dụng Firebug để gỡ lỗi, và tôi có thể thấy rằng newParent.firstChild
là một TextNode, nhưng tôi luôn luôn nhận được lỗi sau:
Node was not found" code: "8
newParent.parentNode.insertBefore(moveable, newParent.firstChild);
Nó có vẻ như insertBefore
đòi hỏi một nút phần tử và sẽ không hoạt động trên một nút văn bản ... không biết có đúng? Nếu vậy, có phương pháp tốt nào khác để làm điều này không?
Lưu ý: Tôi không thể sửa đổi hoặc xóa HTML để bao gồm thẻ đoạn hoặc xóa khoảng trắng.
Cảm ơn bạn, cảm ơn bạn. Lời giải thích của bạn sẽ giúp ích rất nhiều; Tôi cũng đã trộn lẫn lên appendChild, tôi nghĩ vậy. –
Tôi thấy - insertBefore phải được gọi trên nút chứa/nút cha có chứa nút mà tôi muốn chèn trước đó. – kermit