1

在以下网页中

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

在“示例:在所有段落之后插入一个 DOM 元素”中。它包含以下代码部分:

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

似乎 document.createTextNode() 实际上是不必要的......它仍然适用于纯字符串......

例如

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

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

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

类型:htmlString 或 Element 或 Array 或 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>')

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

4

1 回答 1

0

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

于 2013-10-06T01:06:13.703 回答