访问具有特定文本内容的类,并显示:none

时间:2014-09-30 22:08:15

标签: javascript jquery css css3

我有一个我正在研究的大型Joomla CMS网站。

问题:我需要在整个网站上全局隐藏菜单标签。我需要的菜单项没有唯一的ID或类;但是与我需要在页面上保留的其他选项卡共享相同的类。我需要删除的标签的70%以第四顺序显示,所以我从下面开始。

.tabs:nth-of-type(4)
{
    display:none !important;
}

但是!看到其余部分的顺序不同,这不会起作用。我需要删除的标签在标记处看起来如下所示。

更新:这是我目前通过以下建议获得的,但它不起作用:

$(document).ready(function() {
  $('.djaccTitle:contains("Location").css( "display: none;" )')
});
<span class="tabs">Location</span>

有没有办法编写if语句或类似的轻量级解决方案,可以嗅出类中的文本内容,所以如果它说的是Location,那么隐藏?

我想找到这样的解决方案,而不是手动删除1000个标记删除文件。欢呼任何指针

更新:这是我通过下面的当前建议得到的,但它不起作用!

$(document).ready(function() {
  $('.tabs:contains("Location").css( "display: none;" )')
});

4 个答案:

答案 0 :(得分:2)

我不相信你现在要求的纯CSS存在。

我要做的是使用jQuery&#39; :contains()选择器:

$('span.tabs:contains("Location")')

甚至更好:

$('#idOfTabsContainer span.tabs:contains("Location")')

当然,不要忘记将其放在document.ready中以确保您的DOM元素已成功加载:

$(document).ready(function() {
    $('#idOfTabsContainer span.tabs:contains("Location")')
});

答案 1 :(得分:1)

曾经有一个:contains选择器,他们将添加到CSS。

但是,唉,你可能不得不诉诸一些JS,as addressed already here

jQuery让你回来了:

$('.tabs:contains("Location")')

答案 2 :(得分:1)

Jquery :contains() Selector应该可行。我认为您在.css() function语法中有错误。

请尝试:

jQuery(document).ready(function(){
    $( '.tabs:contains("Location")' ).css( 'display', 'none' );
});

希望这有帮助

答案 3 :(得分:-1)

  

问题:我需要在整个网站上全局隐藏菜单标签。

解决方案1:禁用菜单项。繁荣,它从您的菜单中消失,在整个网站上。

解决方案2:通过向菜单项本身添加一个唯一的类,然后用css隐藏它来隐藏带有css的菜单项。

enter image description here

.hide-me-with-css {display: none;}