如果内部链接有空的href,则隐藏父div

问题描述 投票:0回答:7

我需要隐藏按钮持有者Div,其风格看起来像一个按钮。但是如果链接本身为空,则需要隐藏按钮样式图像。

<div class="RegisterBtnHolder"> 
    <span class="RegisterOrangeButton">
             <span>
              <a href="http://www.google.com">Register Online</a>
       </span>                              
    </span>
</div>

如果锚标记有空的href或空文本,我需要隐藏RegisterBtnHolder。如何在jquery中执行此操作。

javascript jquery html anchor
7个回答
1
投票

Fiddle

$('.RegisterBtnHolder a').each(function() {
    if($(this).attr('href') === '' || $(this).text() === '') {
        $(this).parents('.RegisterBtnHolder').hide();
    }
});

2
投票

试一试:

$(function(){
       $("a[href=''],a:empty","div.RegisterBtnHolder").closest("div.RegisterBtnHolder").hide();
    });

2
投票

使用jQuery:

var button = $('.RegisterBtnHolder').find('a'); // caches the <a> element from the dom.
if(button.attr('href') == '') {
    button.hide();
}

上面的答案也很有用,只要记住尽量避免跳入DOM,这会减慢你的加载时间。


1
投票

这对你有用吗:

if ($('div.RegisterBtnHolder a').text() == '' || $('div.RegisterBtnHolder a').attr('href') == '') $('div.RegisterBtnHolder a').hide()​

1
投票

示例代码如下

if($("a").attr("href") === "" || $("a").text()===""){
  $(this).closest("div").hide();   
}

1
投票

使用filter()有帮助

http://api.jquery.com/filter/

$('.RegisterBtnHolder a').filter(function(){
     /* add any additional tests you might need such as looking for "#" as an href*/    
    return $(this).attr('href')=='' || $.trim($(this).text())=='';                        
}).closest('.RegisterBtnHolder').hide();

0
投票

仅限JavaScript

var dilly = document.querySelectorAll('.RegisterBtnHolder a'), i;

for (i = 0; i < dilly.length; ++i) {
     var $true = (dilly[i].getAttribute('href') == '')
     if ($true == true) {
          dilly[i].parentElement.style.display = 'none'
     } else {
          dilly[i].parentElement.style.border = "1px dotted silver"
     }
}

jsfiddle

© www.soinside.com 2019 - 2024. All rights reserved.