2012-11-28 48 views
0

我有一個由SharePoint控件生成的項目列表,因此我無法控制標記。在列表中隱藏未選中的項目

我唯一要做的就是一個<li>,它有一個'selected'類。默認情況下,所有其他嵌套的項目都會顯示出來,但我只想顯示來自父項目的線索。對於屬於該行的任何節點,我想顯示兄弟姐妹,但不顯示後代。

請參見本的jsfiddle什麼,我需要做的...... http://jsfiddle.net/QLbAS/4/

感謝

//logic i think should be 
// get all items in the hierarchy to this particular item 
// for each item in step above check to see if there are sibling nested lists 
// if yes then hide the items 

回答

2

爲你做這項工作:

$(function() { 
    $("li").hide(); 
    $("li.selected").parents("li").andSelf().each(function(index,elem) { 
     $(this).siblings().andSelf().show(); 
    }); 
}); 

fiddle

+0

嗨,我不這麼認爲。它適用於示例中的選定節點,但不適用於將選定節點上移一級的情況。 – ringo747

+0

@ ringo747:我把它向上移動了一層,並對選擇器做了一些小小的改動(之前我沒有注意到,'li'和'a'標籤的類都是'.selected'。是[this]( http://jsfiddle.net/QLbAS/8/)你想要什麼? –

+0

不幸的是,這也不起作用。你是正確的,這是我選定的目標。 在小提琴,如果你是要選擇一個元素作爲活動,然後我仍然希望在該節點下面顯示相關列表項目。 對不起,這很糟糕的解釋 - 這是相當混亂 – ringo747