Подтвердить что ты не робот

JQuery: скрыть якорь, если href пуст

На этот раз на какое-то время. В принципе, мне нужно проверить, где href в теге привязки с классом .pdf-download пусто, а если оно есть, скройте его.

Я попытался несколько вариантов, но не повезло. Это то, что я до сих пор:

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

Ответ 1

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

Обратите внимание, что вы также можете сделать это в css с помощью селекторов атрибутов:

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

Однако это не поддерживается в ie6.

Ответ 2

Вы также можете сделать это с помощью селектора jQuery следующим образом:

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

Ответ 3

Используйте это решение. он также даст желаемые результаты, если атрибут href не определен. Если вы используете селектор CSS (JQuery), несуществующие атрибуты href не будут обнаружены.

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

Не нужно использовать метод JQuery для получения атрибута href, потому что this.href читается, быстрее и также поддерживается повсеместно.

Ответ 4

Что-то вроде этой работы?

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

Ответ 5

$(function() {

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

});

Всемогущее демо: http://jsfiddle.net/each/j9DGw/

Ответ 6

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

или

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

Ответ 7

Я сам начинаю jquery, но вот как я это сделаю:

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

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

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

        $(this).hide();

    };

});

Демо: http://jsfiddle.net/BZq9c/1/