通过JavaScript / jQuery将class/ID添加到div,其中包含特定的文本



我试图通过注入javascript/jQuery来自定义特定页面,以将css class/id添加到侧边栏中的特定"div"。我已经将代码复制并粘贴在jsfiddle链接上。我试图只将"nodisplay"类/id 添加到蓝色突出显示的框中(在此处查看屏幕截图(,以便我可以通过 css 隐藏它。

我不能使用"第 n 个孩子"css 选择器,因为该蓝色框有时先显示,有时显示第二,等等。我想在第一个子div 包含文本"管理"时才将"nodisplay"添加到父div。

逻辑:

if div.SidebarList-sidebarListHeader-m1Kth contains text that matches exactly = "Manage",
then add "nodisplay" to parent div css;

使用 contains 检查愿望文本并使用 parent 查找父项。

if ($(".menu:contains('Sed')")) {
  $('.menu').parent().addClass('dclass');
}
.dclass {
  background-color: blue
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>   
 <div class='menu'>
  Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas
  sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt
  ut labore et dolore magnam aliquam quaerat voluptatem
</div>
</div>

使用 $("div:contains('my text')").closest('div') .请参阅 jQuery :contains API 和 jQuery .closest(( API。

我为您添加代码示例。

$('.SidebarList-sidebarListHeader-m1Kth:contains("Manage")').parent().addClass("nodisplay");

检查这里是你的小提琴

以下代码将适用于您,

$('.SidebarList-sidebarListHeader-m1Kth').filter(function() {
    return $(this).text() == 'Manage';
}).parent('div').hide();

点击这里小提琴

.closest(( 函数是元素的直接父级。

$("div.SidebarList-sidebarListHeader-m1Kth:contains('Manage')").closest("div").addClass("nodisplay");

最新更新