基於

2011-04-18 45 views
1

jQuery的隱藏多行我已經從設置到一個表像這樣的記錄數據庫輸出:基於

Response.Write "<TR class=data>" 
For i = 0 to rs.Fields.Count 
if i < 4 then 
    if i = 0 or i = 1 or i = 2 then 
     response.Write "<td align=center>" & rs.Fields(i) & "</td>" 
    else 
     response.Write "<td align=center class="&rs.Fields(i)&"><div id=thisone>" & rs.Fields(i) & "</div></td>" 
    end if 
end if 
Next 
Response.write "</TR>" 

正如你可以看到我已經建立了一個類名等於4該行中的項目(在這種情況下是用戶名)。如果最終用戶在該行的任何位置點擊,我想要做的就是隱藏具有相同用戶名的所有行。

到目前爲止,我有什麼是這樣的:

<script> 
var username; 

$(document).ready(function(){ 

    $("TR.data").click(function() { 
     username = $(this).find('td:last').text(); 
     alert(username); 

     $(this).each(function(object){ 
      if($(this).find('td:last').text() == username){ 
       object.hide(); 
      } 
     }); 
    }); 
}); 
</script> 

我能夠得到正確保存的用戶名,但是當我試圖通過表迭代找到與該用戶名其他行,我可以似乎不能隱藏它們。我想也許我需要使用父()方法,但我嘗試過的所有東西都失敗了。

任何幫助表示讚賞。謝謝。

回答

2

試試這個:

$("TR.data").click(function() { 
    var username = $(this).find('td:last').text(); 

    $("TR.data:contains('"+username+"')").hide(); 

}); 
+0

另一個好的答案。我不知道contains()方法。非常感激! – 2011-04-18 14:37:01

+0

啊!新的網站。我不知道如何。 – 2011-04-18 16:19:26

+0

對於任何想要做相反處理的人(例如:單擊一行並使所有OTHER行消失),您可以使用方法「not()」。這裏是我使用的例子: $(「TR.data」)。not(「:contains(」+ username +「)」)。fadeOut(500); – 2011-04-18 18:57:24

0

試試這個:

$('.yourclass').css('display', 'none'); 

這將發現具有給定類名的所有元素,並應用顯示:無風格,他們每個人。

+0

完美!我唯一需要改變的是在css之前添加.parent(),因爲它只隱藏了​​而不是整行。比我想要的要容易得多。非常感謝! – 2011-04-18 14:34:20

+3

而不是做父母()我傾向於更喜歡.closest('tr'),這樣你總是知道你會隱藏這一行,不管被定義爲什麼 – 2011-04-18 14:59:35