用JQUERY写一个循环

时间:2011-06-16 09:42:55

标签: jquery

我想检查一个元素中是否没有hrefs(即它是空的),如果是,则隐藏与之关联的标签。如果页面上有几个元素需要检查它们是否为空,那么我需要编写一个循环。我需要帮助编写循环。到目前为止,这是我的代码:

if(jQuery('span.tags').is(':empty')) {
        jQuery('span.label').hide()        
    };

有人可以帮我这个代码吗?

这是我的HTML

<div class="entry-meta">  
            <span class="label">Tagged:</span>
           <span class="tags"> 
            <a href="#" rel="tag">Career change</a>, 
            <a href="#" rel="tag">career change e course</a>, 
            <a href="#" rel="tag">career help</a>
           </span>
    </div><!-- END .entry-meta -->

感谢所有回复此帖子的人。这是有效的解决方案。

//Removes word 'Tagged:' if there are no tags
jQuery('span.tags:empty').prev('span.label').hide();

4 个答案:

答案 0 :(得分:1)

您可以使用each function循环遍历DOM元素,并隐藏每个元素。

$('span.tags:empty').each(function(i, value) {
    $('span.label').hide();
});

答案 1 :(得分:1)

根据你的HTML,你应该能够在不抛出显式循环的情况下解决这个问题。

// something like
$('span.tags').not(':has(a[href])')
              .prev('span.label')
              .hide()
              ;

答案 2 :(得分:0)

非常简单:

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

使用您编写代码示例 - http://jsfiddle.net/ajthomascouk/DfM79/

答案 3 :(得分:0)

你不应该需要一个循环。基于假设如果没有标记,您的tags范围将为空,则可以执行此操作:

$('span.tags:empty').prev('span.label').hide();

Demo on jsfiddle