關于選定當前元素的直接祖先元素問題
<ul?id="menu"> ????<li?id='1002'>根目錄1 ????????<ul?class="sub_menu"?id='sub_1002'?style="display:none"> ???????????<li>子目錄1-1</li> ???????????<li>子目錄1-2</li> ????????</ul> ????</li> ????<li?id='1221'>根目錄2 ????????<ul?class="sub_menu"?id='sub_1221'?style="display:none"> ????????????<li>子目錄2-1</li> ????????????<li>子目錄2-2</li> ????????</ul>???? ????</li> ????<li?id='1232'>根目錄3 ????????<ul?class="sub_menu"?id='sub_1232'?style="display:none"> ????????????<li?class='current'>子目錄3-1</li> ????????????<li>子目錄3-2</li> ????????</ul> ????</li> </ul>
?這是一個二級菜單,當前位置是根目錄3下面的子目錄3-1其屬性為current,現在想選擇當前子目錄3-1所在的<ul>元素,將其取消隱藏;再選擇當前子目錄3-1所在的上一級目錄“根目錄3”的<li>元素,并添加其屬性改為"menuon",我的代碼如下:
<script> ????$(".sub_menu?li[class='current']").parent().show(); ????$(".sub_menu?li[class='current']").parents().addClass("menuon"); </script>
結果是所有隱藏的二級目錄全部顯示出來了,根目錄3也沒有添加menuon屬性。
請教各位,怎么樣才能只選擇當前元素的直接上級元素,而不是遍歷所有上級同類元素。我想利用id來精確選擇某一個上級元素,但是不知道怎么表達出來。
2016-04-14
$(".sub_menu?li[class='current']") ?選出來的是三個ul,在寫的時候應該用他的id名?$(".sub_menu#sub_1232 li[class='current']") 或者帶上父級$("#1232 .sub_menu li[class='current']")?