2012-01-30 29 views
1
<ui:fragment rendered="#{...}"> 
<p class="#{current.index eq 0 ? '' : 'someClass'}"> 
    Some Text 
</p> 
</ui:fragment> 
..... 
<ui:fragment ...> 
<p class="#{current.index eq 0 ? '' : 'someClass'}"> 
    ... 
</p> 
.... 
</ui:fragment> 

如何獲得上面facelet中當前ui:fragment的索引?如何獲取當前ui:碎片的索引?

回答

1

你是硬編碼它們而不是使用像<ui:repeat>這樣的迭代組件,所以在範圍中沒有可用的索引。只要對索引進行硬編碼,或者使用像<ui:repeat>這樣的迭代組件,其中該索引可由varStatus參考獲得。

<ui:repeat value="#{bean.list}" var="item" varStatus="loop"> 
    <p>#{loop.index}</p> 
</ui:repeat> 
+0

我不得不使用jQuery來遍歷所有類來獲取每個元素的索引。無論如何,謝謝:) – 2012-01-30 23:51:56

+0

根據功能要求(這個問題還不清楚),也可以是一個解決方案,是的。 – BalusC 2012-01-30 23:54:34

+0

功能要求是根據我指定的條件刪除一個css類。沒有列表可以從bean中檢索,如果是的話,你的答案是絕對正確的。正如你所說的,它們是根據需求在頁面上進行硬編碼的。 – 2012-01-31 00:24:59

0

如果我使用p標籤硬編碼的文字,

<ui:fragment rendered="#{...}"> 
<p class="dummyClass someClass"> 
    Text 1 
</p> 
</ui:fragment> 
<ui:fragment rendered="#{...}"> 
<p class="dummyClass someClass"> 
    Text 2 
</p> 
</ui:fragment> 
......... 

然後使用jQuery

$('.dummyClass').each(function() { 
    if($(this).index() == 1){ 
     $(this).removeClass('someClass'); 
    } 
}); 

注意,的.index()不帶參數返回1第一個元素。

相關問題