Jquery - 如果内部元素为空(白色空格),如何隐藏链接?

时间:2014-03-24 15:44:25

标签: javascript jquery html

如果span里面的空格是文本,我有一个隐藏元素的问题。是否可以隐藏。我在下面尝试了没有结果的代码?谢谢。

Jquery的:

if($('#footerextra .link3 .ui-btn-inner .ui-btn-text').is(':empty')){
   $(this).closest(.link3).hide();
}

HTML:

<div id="footerextra" class="ui-footer ui-bar-b" data-theme="b" data-role="footer" style="width=100%; text-align:center; margin: 0 auto;" role="contentinfo">
     <a class="link3 ui-btn ui-shadow ui-btn-corner-all ui-btn-up-b" href="/cz/cs/80_automobilovy-prumysl/1191_vyroba-automobilovych-dveri.html?do=article" data-corners="true" data-shadow="true" data-iconshadow="true" data-wrapperels="span" data-theme="b">
       <span class="ui-btn-inner ui-btn-corner-all">
         <span class="ui-btn-text"> </span>
       </span>
     </a>
 </div>

4 个答案:

答案 0 :(得分:2)

您应该使用 .each() 来遍历您的span元素,以便在此处使用$(this)

$('#footerextra .link3 .ui-btn-inner .ui-btn-text').each(function () {
    if ($.trim($(this).text()) == 0) {
        $(this).closest('.link3').hide();
    }
});

此外,由于您的span在HTML标记中占用了空格,因此您可以使用 jQuery.trim() 从版本的文本中删除空格。

<强> Fiddle Demo

答案 1 :(得分:1)

有多个问题

$('#footerextra .link3').filter(function(){
    return $.trim($(this).find('.ui-btn-inner .ui-btn-text').text()).length ==0
}).hide()
  • .ui-btn-text不为空,因为它有一个空格(文本节点)作为子项
  • if块this内的
  • 未引用ui-btn-text元素,因此$(this).closest(.link3)没有任何意义
  • $(this).closest(.link3) - 您遗失在link3
  • 中附上''

答案 2 :(得分:0)

$(this)这里没有引用&#39; .ui-btn-text&#39;:

if($('#footerextra .link3 .ui-btn-inner .ui-btn-text').is(':empty')){
   $(this).closest(.link3).hide();
}

并在&#39; .link3&#39;。

中加上引号

你可以这样做:

if($('#footerextra .link3 .ui-btn-inner .ui-btn-text').each(function() {
    if ($(this).is(':empty')){
        $(this).closest(.link3).hide();
    }
});

但这只能循环到&#39; .ui-btn-text&#39;在同一个内部&#39; .ui-btn-inner&#39;。

答案 3 :(得分:0)

你可以这样做

Jquery的:

   $('#id1').hide();

HTML:

< a id="id1" ></a>