2009-12-22 35 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