Phương thức insertBefore() của XML DOM
Định nghĩa và cách sử dụng
Phương thức insertBefore() chèn một nút con mới trước nút con hiện có.
Phương thức này trả về nút con mới.
Ngữ pháp:
elementNode.insertBefore(new_node,existing_node)
Tham số | Mô tả |
---|---|
new_node | Bắt buộc. Nút cần chèn. |
existing_node | Bắt buộc. Nút hiện có. Chèn nút mới trước nút này. |
Hướng dẫn và ghi chú:
Ghi chú:Internet Explorer sẽ bỏ qua các phần tử văn bản trống giữa các phần tử (ví dụ: ký tự mới dòng), trong khi Mozilla không làm điều đó. Do đó, trong ví dụ sau, chúng ta sử dụng một hàm để kiểm tra loại phần tử của phần tử con cuối cùng.
Loại phần tử của phần tử phần tử là 1, vì vậy nếu phần tử con cuối cùng không phải là phần tử, nó sẽ di chuyển đến phần tử trước và kiểm tra phần tử này có phải là phần tử hay không. Quá trình này sẽ tiếp tục cho đến khi tìm thấy phần tử con cuối cùng thuộc phần tử. Bằng cách này, bạn sẽ nhận được kết quả chính xác trong Internet Explorer và Mozilla.
Nếu bạn cần thêm thông tin về sự khác biệt giữa IE và trình duyệt Mozilla, hãy truy cập vào giáo trình XML DOM trên CodeW3C.com. DOM trình duyệt bài này.
mẫu
Trong tất cả các ví dụ, chúng ta sẽ sử dụng tệp XML books.xmlvà hàm JavaScript loadXMLDoc()。
Mã đoạn này tạo một phần tử <book> mới và chèn nó vào trước phần tử <book> cuối cùng trong tài liệu:
//Kiểm tra nếu con nút cuối cùng là nút element
function get_lastchild(n)
{
x=n.lastChild;
while (x.nodeType!=1)
{
x=x.previousSibling;
}
return x;
}
xmlDoc=loadXMLDoc("books.xml");
newNode=xmlDoc.createElement("book");
newTitle=xmlDoc.createElement("title");
newText=xmlDoc.createTextNode("A Notebook");
newTitle.appendChild(newText);
newNode.appendChild(newTitle);
xmlDoc.documentElement.insertBefore(newNode,get_lastchild(x));