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

次のコマンドを使用して、タグ全体を削除できます。

$("a[href='http://www.example.com']").find().remove();
于 2012-06-20T07:41:31.433 に答える
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 に答える