通过javascript / jquery将class / id添加到div

时间:2018-01-12 03:37:18

标签: javascript jquery css

我试图通过用javascript / jQuery注入来定制特定页面,以便将css类/ id添加到特定的" div"在侧边栏。我已在jsfiddle link上复制并粘贴了代码。我试图只添加" nodisplay" class / id到蓝色突出显示的框(see screenshot here)所以我可以通过css隐藏它。

我不能使用" nth-child" css选择器,因为有时会显示蓝色框,有时会显示第二个等等。我想添加" nodisplay"仅在第一个子div包含文本"管理"。

时才显示父div

逻辑:

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

5 个答案:

答案 0 :(得分:1)

使用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>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我为您添加代码示例。

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

点击此处查看您的fiddle

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

以下代码适合您,

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

点击此处fiddle