我想根据链接文本评估条件,并根据返回的值显示隐藏选项卡。
HTML:
<span class="links">
<a href="#info">Info</a>
<a href="#accounts>Accounts</a>
<a href="#user">Users</a>
</span>
在这里,我试图检查'a'
是否有值"Accounts",如果是,则隐藏一个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>`
}
你知道如何评估这种情况吗/谢谢
您可以使用jQuery :contains
选择器。由于0是falsy值,因此可以直接进行比较。
if ($("a:contains('Accounts')").length) {
$("#accounts").hide();
} else {
$("#accounts").show();
}
您可以执行类似的操作
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
}
为了防止你将来在页面的其他部分有一个带有文本账户的链接,我会这样做:
<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
}