跳转到内容

JavaScript/处理 HTML

来自维基教科书,开放的书籍,开放的世界


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

使用浏览器的 HTML 解析器

[编辑 | 编辑源代码]
Clipboard

要做的
验证哪些浏览器支持此功能。


从 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 操作对其进行搜索、导航和操作。


华夏公益教科书