jQuery控制TR的显示隐藏

网上有很多,这里介绍三种:

第一种方法,就是使用id,这个方法可以在生成html的时候动态设置tr的id,也是用得最多最简单的一种,如下:

<table>

<tr><td>这行不隐藏</td></tr>

<tr ><td>这行要隐藏</td></tr>

...

</table>

那么控制显隐可以直接使用

for(var i = 1; i < tr_len; i++){ //tr_len是要控制的tr个数

$("#tr_"+i).hide();

}

第二种方法,是使用$.each(),这个方法需要设置table的id,如下:

<table >

<tr><td>这行不隐藏</td></tr>

<tr><td>这行要隐藏</td></tr>

<tr><td>这行要隐藏</td></tr>

...

</table>

那么控制显隐可以直接使用

$.each($("#Tbl tr"), function(i){

if(i > 0){

this.style.display = 'none';

}

});

第三种方法,是通过属性筛选器,这个方法需要给tr加上某个特定属性,比如class,如下:

<table >这行要隐藏</td></tr>

...

</table>

那么控制显隐可以直接使用

var trs = $("tr[class='hid']");

for(i = 0; i < trs.length; i++){

trs[i].style.display = "none"; //这里获取的trs[i]是DOM对象而不是jQuery对象,因此不能直接使用hide()方法

}

就这么简单。如果是要显示的话,把相应的方法改成show()或者display属性改为”"即可

实际应用:

说明:默认情况下,只显示“对应页面名称”所在行,当点击单选按钮时,显示不同的行。

<tr>

<td class="tr_title_edit"><label for="f_navname">对应页面链接<font color="red">*</font></label></td>

<td class="tr_content_edit">

<input type="radio" >外部链接</label></td>

</tr>

<tr /></td>

</tr>

通过id控制隐藏和显示如下:

$("input[name='f_navState']").click(function(){

//if($("input[name='f_navState']").attr("checked")==true){

$("input[name='f_navState']").each(function(i){

if(this.checked){

var f_navState = $("input[name='f_navState']")[i].value; //获得单选框的值

if(f_navState==1){

//alert(123);

$("#il").show();

$("#ol").hide();

}else{

//alert(456);

$("#ol").show();

$("#il").hide();

}

}

});

//}

});

转自:http://speed-guo.iteye.com/blog/1046216