jQuery控制TR显示隐藏的几种方法
内容摘要
网上有很多,这里介绍三种: 第一种方法,就是使用id,这个方法可以在生成html的时候动态设置tr的id,也是用得最多最简单的一种,如下:
这行不隐藏这行要隐藏这行要隐藏
那么控制
这行不隐藏这行要隐藏这行要隐藏
那么控制
文章正文
网上有很多,这里介绍三种: 第一种方法,就是使用id,这个方法可以在生成html的时候动态设置tr的id,也是用得最多最简单的一种,如下:
1 | <table><tbody><tr><td>这行不隐藏</td></tr><tr id= "tr_1" ><td>这行要隐藏</td></tr><tr id= "tr_2" ><td>这行要隐藏</td></tr></tbody></table> |
那么控制显隐可以直接使用
1 2 3 | for ( var i = 1; i < tr_len; i++){ //tr_len是要控制的tr个数 $( "#tr_" +i).hide(); } |
第二种方法,是使用$.each(),这个方法需要设置table的id,如下:
1 | <table id= "Tbl" ><tbody><tr><td>这行不隐藏</td></tr><tr><td>这行要隐藏</td></tr><tr><td>这行要隐藏</td></tr></tbody></table> |
那么控制显隐可以直接使用
1 2 3 4 5 | $.each($( "#Tbl tr" ), function (i){ if (i > 0){ this.style.display = 'none' ; } }); |
第三种方法,是通过属性筛选器,这个方法需要给tr加上某个特定属性,比如class,如下:
1 | <table id= "Tbl" ><tbody><tr><td>这行不隐藏</td></tr><tr><td class = "hid" >这行要隐藏</td></tr><tr><td class = "hid" >这行要隐藏</td></tr></tbody></table> |
那么控制显隐可以直接使用
1 2 3 4 | var trs = $( "tr[class='hid']" ); for (i = 0; i < trs.length; i++){ trs[i].style.display = "none" ; //这里获取的trs[i]是DOM对象而不是jQuery对象,因此不能直接使用hide()方法 } |
就这么简单。如果是要显示的话,把相应的方法改成show()或者display属性改为”"即可 实际应用: 说明:默认情况下,只显示“对应页面名称”所在行,当点击单选按钮时,显示不同的行。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <label for = "f_navname" >对应页面链接<font color= "#ff0000" >*</font></label> <input id= "f_inner" checked= "checked" type= "radio" name= "f_navState" value= "1" ><label for = "f_inner" >内部链接</label> <input id= "f_outer" type= "radio" name= "f_navState" value= "2" ><label for = "f_outer" >外部链接</label> <label for = "f_pagename" >对应页面名称</label> <select id= "f_pageid" name= "f_pageid" > <option value= "" selected= "selected" ></option> <option value= "" >新闻</option> <option value= "" >通知</option></select> <label for = "f_navname" >外部链接</label> <input id= "f_outsidelink" class = "inputLine" size= "40" name= "f_outsidelink" type= "text" > |
通过id控制隐藏和显示如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | $( "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(); } } }); //} }); |
代码注释