jQuery.parseHTML() 方法

返回上一级

jQuery $.parseHTML() 函数用于将 HTML 字符串解析为对应的 DOM 节点数组

语法

$.parseHTML( htmlString [, context ] [, keepScripts ] )

参数

参数 描述
htmlString String类型 需要解析并转为DOM节点数组的HTML字符串
context Element类型 指定在哪个Document中创建元素,默认为当前文档的 document
keepScripts Boolean类型 指定传入的HTML字符串中是否包含脚本,默认为false

说明

  1. 该函数将使用原生的DOM元素创建函数把 HTML 字符串转换为一个 DOM 元素的集合,我们可以将这些 DOM 元素插入到文档中

  2. 如果没有指定 context 参数,或该参数为 null 或 undefined,则默认为当前 document

    如果创建的 DOM 元素用于另一个文档,例如 iframe,则应该指定该 iframe的 document 对象

安全考虑

因为大多数 jQuery API 都允许 HTML 字符串在 HTML 中包含运行脚本

jQuery.parseHTML() 不会运行解析的 HTML 中的脚本,除非我们明确将参数 keepScripts 指定为 true

不过,大多数环境仍然可以间接地执行脚本,例如:通过 <img onerror=""/> 属性

调用者应该避免这样做,并清理或转义诸如 URL、cookie 等来源的任何不受信任的输入,从而预防出现这种情况

出于未来的兼容性考虑,当参数keepScripts被省略或为false时,调用者应该不依赖任何运行脚本内容的能力

范例

$(function () { 
    var $log = $( "#log" ),
        str = "hello, <b>my name is</b> jQuery.",
        html = $.parseHTML( str ),
        nodeNames = [];
    //添加已解析的HTML
    $log.append( html );
    //集合已解析HTML的节点名称
    $.each( html, function( i, el ) {
        nodeNames[i] = "<li>" + el.nodeName + "</li>";
    });
    // 插入节点名
    $log.append( "<h3>Node Names:</h3>" );
    $( "<ol></ol>" )
        .append( nodeNames.join( "" ) )
        .appendTo( $log );
})

运行范例 »

返回上一级

jQuery 参考手册

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.