jQuery append()在开头添加

时间:2011-07-13 20:27:03

标签: javascript jquery append

我想将<sup>1</sup>之类的内容转换为<sup><a href="..." class="...">1</a></sup> 我认为最简单的方法是先添加<a href....>并附加</a>,但附加内容不会出现在内容(1)之后......

我知道我可以做一秒.each()并将1存储为变量,然后执行.html(),但我认为这不是最佳做法,因为它涉及另一个循环。

谢谢!

http://jsfiddle.net/pqzL4/

5 个答案:

答案 0 :(得分:6)

@ Daff的回答应该可以解决你的问题。它不起作用的原因是因为你做了:

$(this).prev(".article").find("sup").prepend("<a href=\"#references" + (i + 1) + "\" class=\"references\">");

立即添加。由于未关闭的标记无效,浏览器将通过为您关闭标记来“纠正”它。

然后你尝试在末尾添加一个关闭标记,如果没有打开标记,则该标记无效,因此浏览器会忽略它。

答案 1 :(得分:4)

我想你可能想看一个jQuery wrapInner

$('sup').wrapInner('<a href="#"></a>');

将使用链接包装任何sup的文本。

答案 2 :(得分:1)

您无法附加或添加HTML片段;你只能使用完整的标签。

您正在寻找wrap

  

说明围绕匹配元素集中的每个元素包装HTML结构。

答案 3 :(得分:1)

我认为你要找的是“wrapInner()”。它接受一个元素的内容,并用你传入的元素包装它。有些东西沿着

$('sup').wrapInner('<a href...></a>') 

答案 4 :(得分:0)

试试这个:

$(this).prev(".article").find("sup").append('<a>' + $(this).prev(".article").find("sup").text() + '</a>');