如何隐藏来自CMS页面的元素

时间:2018-01-03 13:22:36

标签: javascript jquery html

我有一个功能可以将标签页从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&amp;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&amp;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

1 个答案:

答案 0 :(得分:2)

尝试找到这样的元素:

$(document).find('li a[title = "Account"]').parent().hide()

您的元素是动态创建的,因此您需要使用$(document).find()

修改

正如@LouysPatriceBessette所说,你也需要使用.parent()来隐藏整个元素,而不仅仅是<a>标签