Thuộc tính nextSibling của XML DOM

Định nghĩa và cách sử dụng

Thuộc tính nextSibling trả về node em tiếp theo của node được chọn (node tiếp theo trong cùng cấp của cây).

Nếu không có node như vậy, thuộc tính này sẽ trả về NULL.

Cú pháp:

elementNode.nextSibling

Hướng dẫn và ghi chú

Ghi chú:Internet Explorer sẽ bỏ qua các node văn bản trống giữa các node (ví dụ: ký tự xuống dòng), trong khi Mozilla không làm như vậy. Do đó, trong ví dụ sau, chúng ta sẽ sử dụng một hàm để kiểm tra loại node của node em tiếp theo.

Loại node của element là 1, vì vậy nếu node em tiếp theo không phải là node element, nó sẽ di chuyển đến node tiếp theo và kiểm tra xem node đó có phải là node element không. Quá trình này sẽ tiếp tục cho đến khi tìm thấy node em tiếp theo. Phương pháp này có thể đảm bảo rằng bạn nhận được kết quả chính xác trên cả Internet Explorer và Mozilla.

Nếu bạn muốn biết thêm về sự khác biệt giữa trình duyệt IE và Mozilla, hãy truy cập vào phần hướng dẫn XML DOM trên CodeW3C.com Trình duyệt DOM bài này.

thực hành

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 sau đây lấy node em tiếp theo của một element <title> trong tài liệu XML:

//kiểm tra xem node em tiếp theo có phải là node element không
function get_nextsibling(n)
{
var x=n.nextSibling;
while (x.nodeType!=1)
 {
 x=x.nextSibling;
 }
return x;
}
xmlDoc=loadXMLDoc("books.xml");
var x=xmlDoc.getElementsByTagName("title")[0];
document.write(x.nodeName);
document.write(" = ");
document.write(x.childNodes[0].nodeValue);
var y=get_nextsibling(x);
document.write("<br />Next sibling: ");
document.write(y.nodeName);
document.write(" = ");
document.write(y.childNodes[0].nodeValue);

Kết quả đầu ra của đoạn mã trên:

title = Everyday Italian
Next sibling: author = Giada De Laurentiis