2013-10-06 13 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元素。