jQuery.parseHTML()方法
實例
使用一個HTML字串創建一個數組的Dom節點,並將它插入一個div
<div id="log">
<h3>Content:</h3>
</div>
<script>
$(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 );
})
</script>
定義和用法
$.parseHTML() 函數用於將HTML字串解析為對應的DOM節點數組。
注意:1. 該函數將使用原生的DOM元素創建函數把HTML字串轉換為一個DOM元素的集合,你可以將這些DOM元素插入到文檔中。
2. 如果沒有指定context參數,或該參數為null或undefined,則默認為當前document。如果創建的DOM元素用於另一個文檔,例如iframe,則應該指定該iframe的document對象。
安全考慮:大多數jQuery API都允許HTML字串在HTML中包含運行腳本。
jQuery.parseHTML()不會運行解析的HTML中的腳本,除非你明確將參數keepScripts指定為true。
不過,大多數環境仍然可以間接地執行腳本,例如:通過屬性。調用者應該避免
這樣做,並清理或轉義諸如URL、cookie等來源的任何不受信任的輸入,從而預防出現這種情況。
出於未來的相容性考慮,當參數keepScripts被省略或為false時,調用者應該不依賴任何運行腳
本內容的能力。
語法
$.parseHTML( htmlString [, context ] [, keepScripts ] )
參數 | 描述 |
---|---|
htmlString | String類型 需要解析並轉為DOM節點數組的HTML字串 |
context | Element類型 指定在哪個Document中創建元素,默認為當前文檔的document |
keepScripts | Boolean類型 指定傳入的HTML字串中是否包含腳本,默認為false |