javascript - 怎么用jquery檢查li的下級li是否存在class="active"?
問題描述
<ul class='nav sidebar-menu'> <li ><a href='http://www.cgvv.com.cn/admin/index'> <i class='menu-icon glyphicon glyphicon-home'></i> <span class='menu-text'> 后臺首頁 </span></a> </li> <li><a href='http://www.cgvv.com.cn/wenda/5191.html#' class='menu-dropdown'> <i class='menu-icon fa fa-inbox'></i> <span class='menu-text'> 產品 </span> <i class='menu-expand'></i></a><ul class='submenu'> <li ><a href='http://www.cgvv.com.cn/admin/product/lst'> <span class='menu-text'>產品列表</span></a> </li> <li ><a href='http://www.cgvv.com.cn/admin/size/lst'> <span class='menu-text'>碼數管理</span></a> </li> <li ><a href='http://www.cgvv.com.cn/admin/cate/lst'> <span class='menu-text'>產品分類</span></a> </li></ul> </li> <li> //這個li下面的li里面存在active這個class,給這個li增加 <a href='http://www.cgvv.com.cn/wenda/5191.html#' class='menu-dropdown'> <i class='menu-icon fa fa-user'></i> <span class='menu-text'> 管理員 </span> <i class='menu-expand'></i></a><ul class='submenu'> <li ><a href='http://www.cgvv.com.cn/admin/user/lst'> <span class='menu-text'>管理員列表</span></a> </li> <li class='active'> //這個li里面包含了active這個class,我想給上級li增加一個class='open',應該怎么寫才對?<a href='http://www.cgvv.com.cn/admin/authrule/lst'> <span class='menu-text'>權限列表</span></a> </li> <li ><a href='http://www.cgvv.com.cn/admin/authgroup/lst'> <span class='menu-text'>用戶組</span></a> </li> </ul> </li> <li><a href='http://www.cgvv.com.cn/wenda/5191.html#' class='menu-dropdown'> <i class='menu-icon fa fa-gear'></i> <span class='menu-text'> 系統(tǒng)設置 </span> <i class='menu-expand'></i></a><ul class='submenu'> <li ><a href='http://www.cgvv.com.cn/admin/conf/lst'> <span class='menu-text'>配置列表</span></a> </li> <li ><a href='http://www.cgvv.com.cn/admin/conf/conf'> <span class='menu-text'>配置項</span></a> </li> </ul> </li></ul>
不知道怎么表述,所以把問題寫在了上面的代碼里,麻煩各位大大
問題解答
回答1:如果層級不深,可以使用 parents 來獲取獲取,如:
var $menu = $(’.sidebar-menu’);var $itemActive = $menu.find(’.active’); // 選中項var $itemActiveParent = $itemActive.parents(’li:first’); // 父級$itemActiveParent.addClass(’open’);回答2:
想做什么操作。。給你一些代碼
$('.nav>li').each(function(index){$(this).find('.submenu>li').each(function(index1){ if($(this).hasClass('active')){console.log(index,index1); }}) })回答3:
如果你只是單純的檢查,可以
var $li = targetLi; // 你想判斷的某個 liif ($li.find('>ul>li.active').length) { // li 的直接下級是 ul,所以它最近的一個下級 li 是 `>ul>li` // todo 這里是找到有 .active 的 li}
如果你只是想找到某個選中的 li 的所有父級
$('li.active').parents();
如果是父級中的 li
$('li.active').parents('li');
如果 active 不止一個,可以先通過 filter 或者加一個條件找到你需要的那一個。
相關文章:
1. 在mybatis使用mysql的ON DUPLICATE KEY UPDATE語法實現存在即更新應該使用哪個標簽?2. mysql - 數據庫建字段,默認值空和empty string有什么區(qū)別 1103. mysql - 這種分級一對多,且分級不平衡的模型該怎么設計表?4. Navicat for mysql 中以json格式儲存的數據存在大量反斜杠,如何去除?5. mac OSX10.12.4 (16E195)下Mysql 5.7.18找不到配置文件my.cnf6. java - 數據庫查詢多表7. 新人求教MySQL關于判斷后拼接條件進行查詢的sql語句8. mysql - 千萬數據 分頁,當偏移量 原來越大時,怎么優(yōu)化速度9. MySQL FOREIGN KEY 約束報錯10. mysql - 數據庫表中,兩個表互為外鍵參考如何解決
