我有如下的菜单结构,
<ul>
<li class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-1406 current_page_item menu-item-7482 white">one</li>
<li class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-1406 current_page_item menu-item-7482 orange">two</li>
<li class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-1406 current_page_item menu-item-7482 white">three</li>
<li class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-1406 current_page_item menu-item-7482 orange">four</li>
<li class="signup_login orange"><a title="Sign up" href="/login?status=d&login=setsignup" style="font-size: 14px; font-family: 'AmerTypeMdBTMedium' ! important;"> sign up </a></li>
<li class="logout white"><a title="Login" href="/login?status=d&login=setlogin" style="font-size: 14px; font-family: 'AmerTypeMdBTMedium' ! important;"> login</a></li>
</ul>
在上面我需要检查具有类名“signup_login”之前的li类的li。基于我需要为最后两个li设置类。
我在jquery下面使用过,
$(document).ready(function() {
if(($('.signup_login').prev('.white'))){
$('.signup_login').addClass('orange');
$('.logout').addClass('white');
} else {
$('.signup_login').addClass('white');
$('.logout').addClass('orange');
}
)};
但它不起作用。上面的jquery代码有什么问题?。
答案 0 :(得分:5)
试试这个:
if($('.signup_login').prev('li').hasClass('white')) {
...
答案 1 :(得分:0)
prev()不返回它是否有类。它只是返回前一个元素。 所以你应该试试
$('.signup_login').prev().hasClass('white')
有点代码。
答案 2 :(得分:0)
试试这个:
$(".signup_login")
.siblings()
.each(function(){
if( $(this).hasClass("white") ){
// has white class
} else {
// doesn't have white class
}
});
这会检查所有li
的兄弟姐妹,如果他们有合适的班级,就可以做任何你想做的事。