しばらくこれをやっています。基本的に、クラス.pdf-download
のアンカータグのhref
が空であるかどうかを確認し、空の場合は非表示にする必要があります。
私はいくつかのオプションを試しましたが、運がありませんでした。これは私がこれまでに持っているものです:
$("a.pdf-download").each(function (i) {
if ($('[href]:empty',this).length == 1) {
$(this).hide();
} else {
$(this).show();
}
});
if ($(this).attr('href') != '') {
$(this).hide();
} else {
$(this).show();
}
属性セレクター を使用してcssでこれを行うこともできることに注意してください:
a.pdf-download[href='']{
display:none;
}
ただし、これはie6ではサポートされていません。
次のように、jQueryセレクターを使用してこれを行うこともできます。
// Hide any links with blank href or no href attribute
$('a.pdf-download[href=], a.pdf-download:not([href])').hide();
このソリューションを使用してください。また、href
属性が定義されていない場合でも、望ましい結果が得られます。 CSSセレクター(JQuery)を使用する場合、存在しないhref
属性は検出されません。
$("a.pdf-download").each(function (i) {
if (!this.href) {
$(this).hide();
} else {
$(this).show();
}
})
href
属性を取得するためにJQueryメソッドを使用する必要はありません。なぜなら、this.href
も同様に読みやすく、高速で、普遍的にサポートされています。
このようなものは機能しますか?
$("a.pdf-download").each(function (i) {
if ($(this).attr('href').length == 0) {
$(this).hide();
} else {
$(this).show();
}
});
$("a.pdf-download").each(function() {
var href = $(this).attr("href");
if(href == '') {
$(this).remove();
}
});
または
$("a.pdf-download[href='']").remove()
$(function() {
$('a').each(function() {
(!$(this).attr('href')) ? $(this).hide() : $(this).show();
});
});
私自身はjqueryの初心者ですが、それが私のやり方です。
$("a.pdf-download").each(function (i) {
var aHref = $(this).attr('href');
if (aHref == '' || !aHref) {
$(this).hide();
};
});