简单<link href="https://v4-alpha.getbootstrap.com/dist/css/bootstrap.min.css" rel="stylesheet" />
<div class="container">
<div class="row">
<div class="col">
1 of 2
</div>
<div class="col">
1 of 2
</div>
</div>
<div class="row">
<div class="col">
1 of 3
</div>
<div class="col">
1 of 3
</div>
<div class="col">
1 of 3
</div>
</div>
</div>
和hasclass
无效
this.addclass
答案 0 :(得分:3)
$('ul.sidebar-menu-container li.current-menu-item').addClass('expanded')
&#13;
.expanded {
background:red !important;
border: 1px solid green;
}
li {
background: #ccc;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="sidebar-menu-container">
<li class="current-menu-item">asdasdasdasd</li>
<li>asdasdasdasd</li>
</ul>
&#13;
LI
的父级是UL
答案 1 :(得分:2)
您在$(this)
内使用了document.ready
,因此$(this)
引用的文档不是($('.sidebar-menu-container li')
。在任何函数外使用this
都是指全局对象
让您的代码正常工作
$(document).ready(function($) {
$('.sidebar-menu-container li').each(function(){
if ($(this).hasClass('current-menu-item')) {
$(this).addClass('expanded');
}
})
});
.expanded {
background:red !important;
border: 1px solid green;
}
li {
background: #ccc;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="sidebar-menu-container">
<li class="current-menu-item">asdasdasdasd</li>
<li>asdasdasdasd</li>
</div>
或只是
jQuery(document).ready(function($) {
$('.sidebar-menu-container li.current-menu-item').addClass('expanded')
});
.expanded {
background:red !important;
border: 1px solid green;
}
li {
background: #ccc;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="sidebar-menu-container">
<li class="current-menu-item">asdasdasdasd</li>
<li>asdasdasdasd</li>
</div>
答案 2 :(得分:1)
选择器$('.sidebar-menu-container li')
正在返回多个元素,因此如果其中一个元素具有类current-menu-item
,则它将为true
。您必须使用循环,或者更好:
$('.sidebar-menu-container li.current-menu-item').addClass('expanded');
以上代码将选择li
所有.current-menu-item
类,并为其添加expanded
类。没有循环或条件,jQuery为你做。
答案 3 :(得分:1)
你的元素返回多个元素,这是它不工作的尝试这个
jQuery(document).ready(function($) {
$("li").click(function(){
if ($(this).hasClass('current-menu-item')) {
$(this).addClass('expanded');
}
});
});
答案 4 :(得分:1)
我认为您可以使用:
$('.sidebar-menu-container li.current-menu-item').addClass('expanded');
你不需要if。
答案 5 :(得分:0)
$(document).ready(function() {
$('.sidebar-menu-container li.current-menu-item').addClass('expanded');
});
&#13;
.expanded {
background:red !important;
border: 1px solid green;
}
li {
background: #ccc;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="sidebar-menu-container">
<li class="current-menu-item">asdasdasdasd</li>
<li>asdasdasdasd</li>
</div>
&#13;