2015-04-07 67 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

相關問題