htmlString和document.createTextNode对比jquery中的普通字符串

时间:2013-10-06 00:57:42

标签: jquery

在以下网页

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

在“示例:在所有段落之后插入DOM元素”。它包括以下代码:

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

似乎document.createTextNode()实际上是不必要的......它仍然可以使用普通字符串......

e.g。

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

如果您在控制台中输入(至少在Chrome和Firefox中),则会将TEST添加到左上方StackExchange链接的末尾。

在.after()网页上,它说它采用以下类型:

  

键入:htmlString或Element或Array或jQuery HTML string,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>')

无论如何,我以前从未见过像在after()之类的函数中使用的非HTML字符串...我只在text()之类的东西中使用它们。因此,使用它是一个坏主意,因为其他人似乎没有使用它?另一方面,没有document.createTextNode(),代码就更简单了。

1 个答案:

答案 0 :(得分:0)

在附加文字字符串时,您不太可能需要使用这样的语法。但是您可以通过引用一些现有的DOM元素来获取文本节点。文档只是以此为例来说明可以使用DOM元素。