2012-02-15 64 views
0

部分我想補充跟進這個問題here動態jQuery的語句II

<ul> 
    <li>A</li> 
    <li>B 
    <ul> 
     <li>C 
     <ul> 
      <li>D 
      <ul> 
       <li>E</li> 
      </ul> 
      </li> 
     </ul> 
     </li> 
     <li>F</li> 
    </ul> 
    </li> 
</ul> 

的問題涉及HTML列表導航,以前,接下來要準確。如果選擇了當前的F,即currentEle = F,那麼我將如何從E轉到F。反之亦然。 目前我有這一點,但它不是好

if ($(currentEle).prev().val() != null) { 
    if ($(currentEle).prev().children("ul").length > 0) {      
    $(currentEle).prev().children().last("li").children().last().click(); 
    } 
    else { 
    $(currentEle).prev().click(); 
    } 
} 
+0

請修改您的問題,以包含理解/回答此問題所需的鏈接問題中的代碼。 – ThiefMaster 2012-02-15 12:04:38

+2

爲什麼你想從'F'轉到'E'?這可能有助於理解問題。這裏的一般問題是什麼? – 2012-02-15 12:09:19

回答

2

假設thisF節點,

var txtToFind = 'E'; 
$(this).prev('li').find('li').filter(function() { 
    if ($(this).text() == txtToFind) 
     return true; 
    else return false; 
}) 
+1

+1。與'返回$(this).text()== txtToFind'將是一個完美的答案。 – gdoron 2012-02-15 12:21:23

+0

@Thomsen:假設我不知道'txtToFind'會是什麼,我該怎麼辦? – Siddharth 2012-02-15 12:38:10

+1

這就是爲什麼它有助於理解一般問題。不僅僅是從'F'到'E'的導航細節。 – 2012-02-15 12:48:33

0
if ($(currentEle).prev().val() != null) { 
    if ($(currentEle).prev().children("ul").length > 0) { 
    $(currentEle).prev().children().last("li").children().last().click(); 
    var items = $(currentEle).prev().children(); 
    $(items).find('li').last().click(); 
    } 
    else { 
    $(currentEle).prev().click(); 
    } 
} 

爲我工作。