JQuery:如果 href 为空则隐藏锚点

发布于 2024-12-07 07:37:27 字数 309 浏览 1 评论 0原文

已经研究这个有一段时间了。基本上,我需要检查带有 .pdf-download 类的锚标记上的 href 位置是否为空,如果是,则将其隐藏。

我尝试了一些选择,但没有运气。这是我到目前为止所拥有的:

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

Been on this one for a while now. Basically, I need to check where a href on an anchor tag with the class .pdf-download is empty, and if it is, hide it.

I have attempted a few options but with no luck. This is what i have so far:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

昵称有卵用 2024-12-14 07:37:27
if ($(this).attr('href') != '') { 
    $(this).hide();
} else {
    $(this).show();
}

请注意,您还可以使用 属性选择器 在 css 中执行此操作:

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

不过 ie6 不支持此操作。

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

Note that you can also do this in css with attribute selectors:

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

This is not supported in ie6 though.

热血少△年 2024-12-14 07:37:27

您还可以使用 jQuery 选择器来执行此操作,如下所示:

// Hide any links with blank href or no href attribute
$('a.pdf-download[href=], a.pdf-download:not([href])').hide();

You can also do this with a jQuery selector, as follows:

// Hide any links with blank href or no href attribute
$('a.pdf-download[href=], a.pdf-download:not([href])').hide();
猫七 2024-12-14 07:37:27

使用此解决方案。当 href 属性未定义时,它也会产生所需的结果。如果您使用 CSS 选择器 (JQuery),则不会检测到不存在的 href 属性。

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

没有必要使用 JQuery 方法来获取 href 属性,因为 this.href 同样可读、更快并且得到普遍支持。

Use this solution. it will also produce the desired results when the href attribute is not defined. If you use a CSS selector (JQuery), non-existent href attributes will not be detected.

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

It's not necessary to use a JQuery method to get the href attribute, becausethis.href is just as readable, faster and also universally supported.

初吻给了烟 2024-12-14 07:37:27

像这样的东西会起作用吗?

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

Would something like this work?

$("a.pdf-download").each(function (i) {
  if ($(this).attr('href').length == 0) { 
    $(this).hide();
  } else {
    $(this).show();
  }
});
演多会厌 2024-12-14 07:37:27

我自己是一个 jquery 初学者,但这就是我要做的:

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

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

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

        $(this).hide();

    };

});

演示: http://jsfiddle.net/BZq9c /1/

I am a jquery beginner myself, but thats how I would do it:

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

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

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

        $(this).hide();

    };

});

Demo: http://jsfiddle.net/BZq9c/1/

笑忘罢 2024-12-14 07:37:27
$(function() {

    $('a').each(function() {
        (!$(this).attr('href')) ? $(this).hide() : $(this).show();
    });

});

全能演示:http://jsfiddle.net/each/j9DGw/

$(function() {

    $('a').each(function() {
        (!$(this).attr('href')) ? $(this).hide() : $(this).show();
    });

});

Almighty Demo: http://jsfiddle.net/each/j9DGw/

情归归情 2024-12-14 07:37:27
$("a.pdf-download").each(function() {
    var href = $(this).attr("href");
    if(href == '') {
        $(this).remove();
    }
});

或者

$("a.pdf-download[href='']").remove() 
$("a.pdf-download").each(function() {
    var href = $(this).attr("href");
    if(href == '') {
        $(this).remove();
    }
});

or

$("a.pdf-download[href='']").remove() 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文