2015-04-07 28 views
0

我想基于链接文本评估条件,并根据返回的值显示隐藏选项卡。如何检查链接是否包含一些文本并根据文本的值评估条件 - jquery/JS

HTML:

<span class="links"> 
     <a href="#info">Info</a> 
     <a href="#accounts>Accounts</a> 
     <a href="#user">Users</a> 
</span> 

这里我尝试检查'a'具有价值 '帐户',如果是这样隐藏一个div。

我尝试这样做:

JS:

var link = $('a').filter(function() { 
    return $(this).text() =="Accounts"; 
    //will return: [<a href="#accounts>Accounts</a>] 
}); 

而且在 '帐户' 链接并不存在着一些地方,它会返回:[]

现在林不知道如何检查数组是否为空或具有数值的条件:

if (link is empty){ 
    //hide ` <a href="#accounts>Accounts</a>` 
}else{ 
     //show ` <a href="#accounts>Accounts</a>` 
    } 

任何想法如何评估这种情况?/ 谢谢!

回答

0

你可以使用jQuery :contains选择器。而且由于0是价值不菲,你可以直接比较一下的值。

if ($("a:contains('Accounts')").length) { 
    $("#accounts").hide(); 
} else { 
    $("#accounts").show(); 
} 
+0

谢谢@rec,有效 – user1234

1

你可以做这样的事情

var link = $('a').filter(function() { 
    return $(this).text() == "Accounts"; 
    //will return: [<a href="#accounts>Accounts</a>] 
}); 
//link is a jQuery object that has a length property that tells how many dom elements are referred by this jQuery object 
if (link.length) { 
    //show div as 
} else { 
    //hide div 
} 
1

只是柜面你可能有文字帐户在未来在你的页面的其它部分的链接,我会做到这一点:

<span class="links" id="mylinks"> 
    <a href="#info">Info</a> 
    <a href="#accounts>Accounts</a> 
    <a href="#user">Users</a> 
</span> 

var link = $('#mylinks').find(a).filter(function() { 
    return $(this).text() == "Accounts"; 

}); 

if (link.length) { 
    //show div 
} else { 
    //hide div 
} 
+1

太棒了!工作!现在,而不是显示隐藏div,我试图隐藏'帐户'文本,你能帮我吗?谢谢 – user1234

+0

@ user1234你的意思是你想隐藏帐户链接?那么在什么条件下? – renakre

+0

if(link.length === 0){//隐藏帐户链接} else {//显示帐户链接} – user1234

相关问题