2013-10-06 41 views
1

在以下網頁htmlString和document.createTextNode VS在jquery的純字符串

http://api.jquery.com/after/

「實施例:插入所有段落之後的DOM元素。」部,它包括以下代碼:

$("p").after(document.createTextNode("Hello")); 

似乎document.createTextNode()實際上是不必要...它仍然可與純字符串...

例如

$('a').eq(0).after('TEST') 

如果您鍵入的是,在控制檯(在Chrome和Firefox至少)將其添加到測試在左上角的StackExchange鏈路的末端。

在。經過()網頁,它說需要以下類型:

類型:htmlString或元或陣列或jQuery的HTML字符串,DOM 元件,元件的陣列,或jQuery對象插入在匹配元素集合中的每個 元素之後。

http://api.jquery.com/Types/#htmlString

說:

// Appends <b>hello</b>: 
$("<b>hello</b>").appendTo("body"); 

//Appends <b>hello</b>: 
$("<b>hello</b>bye").appendTo("body"); // 

// Syntax error, unrecognized expression: 
bye<b>hello</b> $("bye<b>hello</b>").appendTo("body"); 

事情是這樣的工作雖然....

$('a').eq(0).after('bye<b>hello</b>') 

反正我沒見過正在使用非HTML字符串在after()之前的函數中......我只在text()等東西中使用它們。那麼使用它是不是一個好主意,因爲其他人似乎沒有使用它?另一方面,如果沒有document.createTextNode(),代碼更簡單。

+1

它使用了一個節點,因爲它是向該方法提供DOM元素的示例。是的,一個字符串也可以使用,但這不適合這種情況。 – Barmar

回答

0

當附加文字字符串時,您不太可能需要使用類似的語法。但是你可能通過引用一些現有的DOM元素來獲得文本節點。該文檔僅以此爲例來說明可以使用DOM元素。