我有一个功能可以将标签页从CMS页面加载到我的网页。 我试图隐藏一个标签,如果用户没有登录,如果用户登录该标签必须显示。这是我的代码填充我的标签的一部分。
menu.Append("<li class=' " + page.MenuClass + "'><a dataid='" + page.ID +"' title='" + new HtmlString(page.LongTitle) + "' href='" + href + "' " + IDAttribute + redirectAttribute + ">" + page.ShortTitle + "</a>" + descendants + "</li>");
所以以上获取我的标签并将其附加到menu
我想要做的是当标题等于page.longTitle“帐户”时它必须隐藏此标签。
这是我检查用户是否已登录的功能
function Check() {
JApi.Services.CheckLoginAccount(function(account) { // so its using an api to check if the user is logged in
if (account == null) {
// if the user is not logged in then the title='Account' must be hidden
}
});
}
有没有办法实现这个目标?我测试检查以上功能是否有效,所以我隐藏了页面上的文本框 例如
function Check() {
JApi.Services.CheckLoginAccount(function(account) {
if (account == null) {
$("#txtBox").hide(); //so this gets hidden if the user is not logged in,im just not sure how to get the title "Account" from menu and hide that
}
});
}
帐户输出
<li class=""><a dataid="24770" title=" Account" href="/page?pageId=24770&title=-Account" class="sf-with-ul"> Account<span class="sf-sub-indicator"> »</span></a><ul style="white-space: nowrap; float: none; width: 17em; display: none; visibility: hidden;"><li class=" " style="white-space: normal; float: left; width: 100%;"><a dataid="24771" bannerbase="24770" title="Register" href="/page?pageId=24771&title=Register" style="float: none; width: auto;">Register</a></li></ul></li>
尝试
$('#menu a[dataid="24770"]').closest('ul').hide(); this way hides it using the dataid,which i dont want.
$('#menu a[title="Account"]').closest('ul').hide(); // if i do it this way it doesnt hide
根据下面的回答尝试2
$(document).find('#menu li a[title = "Account"]').parent().hide(); //not hiding
$(document).find(" #menu [title='Account']").parent("li").remove();//not hiding
答案 0 :(得分:2)
尝试找到这样的元素:
$(document).find('li a[title = "Account"]').parent().hide()
您的元素是动态创建的,因此您需要使用$(document).find()
修改强>
正如@LouysPatriceBessette所说,你也需要使用.parent()
来隐藏整个元素,而不仅仅是<a>
标签