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