每次只能使用一次jQuery .replaceWith方法

3

我写的某些东西遇到了问题,由于我对jQuery还不是很熟悉,所以不确定如何解决。

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

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

例如,如果我有这样的内容:

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

结果将会是:
<label>FooBar</label>
<label>FooBar</label>

当然,我希望它是这样的:

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

我尝试了几种方法,但似乎都不起作用。我错过了什么吗?
2个回答

5

试试这个:

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

Working Demo


非常感谢!我知道这不可能太难。等几分钟后,我会接受的。 - Adam Fratino

1
你可以将一个函数传递给 `replace` 方法来使用:
$("a[href=##]").replaceWith(function(){
    return "<label>" + $(this).text() + "</label>";
}

小提琴


@MilindAnantwar 哎呀,我太匆忙了,谢谢你指出我的错误! - Karl-André Gagnon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接