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

时间:2011-09-28 16:03:40

标签: jquery hide show-hide

现在已经有一段时间了。基本上,我需要检查类href的锚标记上的.pdf-download是空的,如果是,则隐藏它。

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

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

7 个答案:

答案 0 :(得分:23)

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

请注意,您也可以使用attribute selectors

在css中执行此操作
a.pdf-download[href='']{
    display:none;
}

虽然在ie6中不支持。

答案 1 :(得分:6)

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

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

答案 2 :(得分:4)

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

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

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

答案 3 :(得分:3)

这样的事情会起作用吗?

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

答案 4 :(得分:1)

$(function() {

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

});

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

答案 5 :(得分:1)

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

$("a.pdf-download[href='']").remove() 

答案 6 :(得分:0)

我自己就是一个jquery初学者,但那就是我会怎么做的:

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

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

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

        $(this).hide();

    };

});

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