我想检查一个元素中是否没有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();
答案 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();