基于

2011-04-18 35 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