jQuery .replaceWith每个只有一次

时间:2014-04-22 14:47:47

标签: javascript jquery

遇到我写过的东西的问题,jQuery仍然不是很好,所以我不确定如何修复。

$("a[href=##]").replaceWith("<label>" + $("a[href=##]").text() + "</label>");

这会为我生成一个简单的标签,但我的问题是如果我有多个#ref的href值的链接,每个链接的文本将填充的标签所有实例。

例如,如果我有这个:

<a href="##">Foo</a>
<a href="##">Bar</a>

结果将是:

<label>FooBar</label>
<label>FooBar</label>

当我明显喜欢它时:

<label>Foo</label>
<label>Bar</label>

我尝试了一些东西,但似乎没有任何效果。我错过了什么?

2 个答案:

答案 0 :(得分:5)

试试这个:

 $("a[href=##]").each(function(){
    $(this).replaceWith("<label>" + $(this).text() + "</label>");
 });

<强> Working Demo

答案 1 :(得分:1)

您可以传递一个替换为:

的函数
$("a[href=##]").replaceWith(function(){
    return "<label>" + $(this).text() + "</label>";
}

<强> Fiddle