JavaScript/Handling HTML

维基教科书,自由的教学读本

处理从AJAX返回的HTML异常困难。由于XMLHttpRequest被设计为使用格式良好的 XML,因此尝试使用responseXML属性解析 HTML 页面几乎总是会产生XML解析错误。responseText属性当然包含HTML源代码,可以尝试使用常规字符串函数或正则表达式对其进行解析。但是,XMLHttpRequest 对象并没有提供一种简单的方法来使用DOM操作解析返回的HTML。

使用浏览器的HTML解析器[编辑]

解析从AJAX返回的HTML的一种方法是将整个页面添加为浏览器中当前文档的子项。只需创建一个新节点并将返回的HTML文本放在新节点的innerHTML属性中,如下所示:

var htmlDoc = document.createElement('div');  // Creates a new, empty DIV node.
htmlDoc.innerHTML = ajaxResult.responseText;  // Places the returned HTML page inside the new node.

HTML文档会自动解析,然后可以通过DOM操作进行搜索、导航和操作。