2009-12-22 76 views
0

我有一張桌子,我想統計我隱藏了多少人。jQuery計數器問題

代碼:

<rich:jQuery query="ready(function() { 
var i = 0; 
jQuery('#inbox:_inboxTable_').find('span[title=isArchivedStatusPlusIncludeArchive]').each(function(i, o){ 
     if (jQuery(this).text() == 'true+false'){ 
       i++; 
       alert(i); 
       jQuery(this).parent().parent().parent().fadeOut(); 
     } 
    jQuery('#inbox').find('span[title=documentProccesedCountTitle]').html(i+' documents are beeing processed to be removed from the inbox'); 
}); 
})"/> 

對於一個頁面有10 TR,在我的測試7是由這部分代碼隱藏,但「i」是10,而不是7在最後一步...

我只是沒有線索......爲什麼? 有沒有人看到原因?

在此先感謝。

+1

什麼是您的html? – kgiannakakis 2009-12-22 12:18:29

+0

這是來自jsf的豐富數據表。 – 2009-12-22 12:21:49

回答

1

i=10,因爲你正在使用它作爲函數的索引,請嘗試使用j或別的東西:

jQuery('#inbox:_inboxTable_').find('span[title=isArchivedStatusPlusIncludeArchive]').each(function(j, o){ 
... 
} 

而且,而是採用jQuery(this).parent().parent().parent().fadeOut();你可以使用closestjQuery(this).closest('tr').fadeOut();(如果tr是您的目標)。

+0

我知道這是小事:)感謝很多。 – 2009-12-22 12:55:44

+0

關於答案的第二部分:最接近('tr')在Firefox中具有有害的行爲。 – 2009-12-22 12:57:42

+0

我從未遇到過使用「最接近」的問題,您遇到過什麼問題或您聽說過?我很好奇。 – Mottie 2009-12-22 13:23:31

2

什麼:

$("#table_id tr:hidden").length 
+0

還有其他的tr也隱藏了,所以我不能指望這個解決方案。 – 2009-12-22 12:24:46