2010-01-26 60 views
1

我在Sharepoint中有一個包含幾百個分組的列表。有些分組只包含1行,在這種情況下,我想刪除上面的分組標題。隱藏分組僅包含1個元素(在Sharepoint中)

要做到這一點,我想我需要隱藏所有的代碼(下面)使用jQuery。我想製作邏輯,以便它查找「> ‎(1)」部分,如果它發現它隱藏了保留TBODY。有任何想法嗎?不完全知道如何啓動這個.....

<TBODY id="titl1-2_" groupString=""><TR><TD colspan="100" class="ms-gb" nowrap><img src="/_layouts/images/blank.gif" alt="" height=1 width=0><a href="javascript:" onclick="javascript:ExpCollGroup('1-2_','img_1-2_');return false;"><img id="img_1-2_" src="/_layouts/images/minus.gif" alt="Expand/Collapse" border="0"></a>&nbsp;<a href="javascript:" onclick="javascript:ExpCollGroup('1-2_','img_1-2_');return false;">Grouping1</a> :&nbsp;Accurint <span style="font-weight: lighter">&#8206;(1)</span></TD></TR></TBODY> 

回答

0

這可能會給你一個想法:

$(document).ready(function() { 
    $("tbody[id^='tit'] .ms-gb span").each(function() { 
//console.log("'" + $(this).text() + "'"); 
if($(this).text().indexOf("(1)") > -1) 
{ 
    $(this).closest("tbody").hide(); // hides the header 
} 
    }); 
});

這將是更復雜,如果你的團體,雖然擴大。我建議強制它們被摺疊以避免找到尚未創建的物品的tbody容器的麻煩。

+0

工作,謝謝!或者,我正在玩這個和一些示例代碼,我有以下工作。這可能是做這種事情的最糟糕的方式,我不知道。 $(document).ready(function(){ var rowOnly = $(「TBODY span:contains('(1)')」)。each(function( ){ var HideParen1 = $(this); var HideName = $(this).parent(); HideParen1.css(「display」,「none」); HideName.css(「display」,「none」 ); }); }); – Brian 2010-01-27 16:56:17

+0

聽起來不錯。另外,hide()和show()是css('display','')的快捷方式。 'tbody [id^='tit'] .ms-gb span'是爲了在結果中包含儘可能少的元素,以幫助提高性能 – 2010-01-27 17:30:59

0

搞砸了。原來的答案奏效。我也玩過,並有以下工作。這可能是一個可怕的方式,但它以某種方式與jQuery合作。

<script type="text/javascript"> 
$(document).ready(function(){ 

var RowOnly = $("TBODY span:contains('(1)')").each(function(){ 
var HideParen1 = $(this); 
var HideName = $(this).parent(); 
HideParen1.css("display", "none"); 
HideName.css("display", "none"); 
}); 

}); 
</script>