1

我的网站上有几个超链接。我想要的是如果它们与给定条件匹配,则删除 a href html 标记。

例子

如果 href 是 example.com 那么,超链接应该被解散并且<a></a>标签应该消失

我一直在使用以下语句,

$("a[href='http://www.example.com']").removeAttr("href"); 

href 将被删除,但<a>仍然存在。

4

7 回答 7

3

您可以使用.remove删除整个元素。

$("a[href='http://www.example.com']").remove();
于 2012-06-18T10:18:09.177 回答
2

要保留链接的文本,但删除链接本身:

$("a[href='http://www.example.com']").replaceWith(function() {
    return $(this).text();
});

.html()如果您希望保留链接中的其他 HTML 标记,请改用。

于 2012-06-18T10:19:51.380 回答
1

要删除锚元素,请尝试以下操作:

$("a[href='http://www.example.com']").remove();

有关更多信息,请参阅.remove()doco

编辑:要将锚元素替换为其内容,请尝试以下操作:

$("a[href='http://www.example.com']").replaceWith(function() {
    return $(this).html();
});

.replaceWith()方法可以满足您的期望。如果您向它传递一个函数,那么将为每个匹配元素调用该函数,this并将当前元素替换为函数的返回值。

于 2012-06-18T10:17:49.497 回答
1
$("a[href='http://www.example.com']").remove(); 
$("a[href='http://www.example.com']").unwrap(); -> also check this :D 
于 2012-06-18T10:17:57.910 回答
1

最好的方法是使用contentsand unwrap

$("a[href='http://www.example.com']").contents().unwrap();

这说:

  • 找到与选择器匹配的所有链接
  • 获取他们所有的子节点
  • 从父节点解开子节点,即a用其子节点替换元素
于 2012-06-18T10:24:53.253 回答
0

演示 http://jsfiddle.net/3utk7/

代码

$('a').each(function() {
    var foo = $(this).attr("href");
    if (foo == "http://www.example.com") {
        $(this).remove();

    }
});​
于 2012-06-18T10:23:30.457 回答
0

您可以使用以下命令删除整个标签:

$("a[href='http://www.example.com']").find().remove();
于 2012-06-20T07:41:31.433 回答