在以下网页中
在“示例:在所有段落之后插入一个 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() 的代码更简单。