2011-09-28 76 views
11

しばらくここにいた。基本的には、クラス.pdf-downloadのアンカータグにあるhrefが空であるかどうかを確認する必要があります。JQuery:hrefが空の場合にアンカーを非表示にする

私はいくつかのオプションを試しましたが、運がありません。これは私がこれまで持っているものです:あなたもattribute selectorsとCSSでこれを行うことができます

$("a.pdf-download").each(function (i) { 
    if ($('[href]:empty',this).length == 1) { 
    $(this).hide(); 
    } else { 
    $(this).show(); 
    } 
}); 
+3

こんにちはガイ - 私はあなたが3つの質問を尋ねたし、いくつかの良い答えを受けています参照してください。最善の答えの横にあるチェックマークをチェックすることで、正しい答えとしてマークしてください。それは、SOコミュニティがどのように機能するかです。 FAQ - http://stackoverflow.com/faq – mrtsherman

答えて

19
if ($(this).attr('href') != '') { 
    $(this).hide(); 
} else { 
    $(this).show(); 
} 

注:

a.pdf-download[href='']{ 
    display:none; 
} 

これは、しかし、IE6ではサポートされていません。

+5

+1 - 私はCSSソリューションが好きです。同じセレクタをjQueryで使用することもできます。 – mrtsherman

+0

jQueryセレクタはhref属性のないリンクタグを隠すことはないことに注意してください。 –

3

この作品は気に入っていますか?

$("a.pdf-download").each(function (i) { 
    if ($(this).attr('href').length == 0) { 
    $(this).hide(); 
    } else { 
    $(this).show(); 
    } 
}); 
+0

これはhrefが要素に設定されている場合に機能しますが、そうでない場合はエラーをスローします。あなたが '$( ' test')の.attr( 'href')。length'を返そうとすると、" TypeError:プロパティ '長さ'が未定義です。 '.attr(' href ') 'が' undefined '。ほとんどの場合、この方法はうまくいくと思いますが、この注意点に注目する価値はあります。 – andyface

4

このソリューションを使用してください。 href属性が定義されていない場合でも、望ましい結果が得られます。 CSSセレクタ(JQuery)を使用すると、存在しないhref属性は検出されません。

$("a.pdf-download").each(function (i) { 
    if (!this.href) { 
     $(this).hide(); 
    } else { 
     $(this).show(); 
    } 
}) 

this.hrefが速く、同じように読み取り可能であるとも普遍的にサポートので、href属性を取得するjQueryのメソッドを使用する必要はありません。

0

私はjqueryのは自分自身を初心者ですが、私はそれを行うだろうかthatsの:

$("a.pdf-download").each(function (i) { 

    var aHref = $(this).attr('href'); 

    if (aHref == '' || !aHref) { 

     $(this).hide(); 

    }; 

}); 

デモ:http://jsfiddle.net/BZq9c/1/

6

またでこれを行うことができますjQueryセレクタを次のように指定します。

// Hide any links with blank href or no href attribute 
$('a.pdf-download[href=], a.pdf-download:not([href])').hide(); 
1
$("a.pdf-download").each(function() { 
    var href = $(this).attr("href"); 
    if(href == '') { 
     $(this).remove(); 
    } 
}); 

または

$("a.pdf-download[href='']").remove() 
関連する問題