jQuery控制TR显示隐藏的三种常用方法
作者:bea
网上有很多,这里介绍三种: 第一种方法,就是使用id,这个方法可以在生成html的时候动态设置tr的id,也是用得最多最简单的一种,如下: <table> <tr><td>这行不隐藏</td></tr> <tr id="tr_1"><td>这行要隐藏</td></tr> <tr id="tr_2"><td>这行要隐藏</td>&l
网上有很多,这里介绍三种:
第一种方法,就是使用id,这个方法可以在生成html的时候动态设置tr的id,也是用得最多最简单的一种,如下:
<table>
<tr><td>这行不隐藏</td></tr>
<tr id="tr_1"><td>这行要隐藏</td></tr>
<tr id="tr_2"><td>这行要隐藏</td></tr>
...
</table>
那么控制显隐可以直接使用
for(var i = 1; i < tr_len; i++){ //tr_len是要控制的tr个数
$("#tr_"+i).hide();
}
第二种方法,是使用$.each(),这个方法需要设置table的id,如下:
<table id="Tbl">
<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 id="Tbl">
<tr><td>这行不隐藏</td></tr>
<tr><td class="hid">这行要隐藏</td></tr>
<tr><td class="hid">这行要隐藏</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" id="f_inner" name="f_navState" value="1" checked="checked" /><label for="f_inner">内部链接</label>
<input type="radio" id="f_outer" name="f_navState" value="2" /><label for="f_outer">外部链接</label></td>
</tr>
<tr id="il" style="display:block">
<td class="tr_title_edit"><label for="f_pagename">对应页面名称</label></td>
<td class="tr_content_edit"><select name='f_pageid' id="f_pageid">
<option value=""></option>
<option value="">新闻</option>
<option value="">通知</option>
</select></td>
</tr>
<tr id="ol" style="display:none">
<td class="tr_title_edit"><label for="f_navname">外部链接</label></td>
<td class="tr_content_edit"><input type="text" class="inputLine" size="40" id="f_outsidelink" name="f_outsidelink" /></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();
}
}
});
//}
});
有用 | 无用
第一种方法,就是使用id,这个方法可以在生成html的时候动态设置tr的id,也是用得最多最简单的一种,如下:
<table>
<tr><td>这行不隐藏</td></tr>
<tr id="tr_1"><td>这行要隐藏</td></tr>
<tr id="tr_2"><td>这行要隐藏</td></tr>
...
</table>
那么控制显隐可以直接使用
for(var i = 1; i < tr_len; i++){ //tr_len是要控制的tr个数
$("#tr_"+i).hide();
}
第二种方法,是使用$.each(),这个方法需要设置table的id,如下:
<table id="Tbl">
<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 id="Tbl">
<tr><td>这行不隐藏</td></tr>
<tr><td class="hid">这行要隐藏</td></tr>
<tr><td class="hid">这行要隐藏</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" id="f_inner" name="f_navState" value="1" checked="checked" /><label for="f_inner">内部链接</label>
<input type="radio" id="f_outer" name="f_navState" value="2" /><label for="f_outer">外部链接</label></td>
</tr>
<tr id="il" style="display:block">
<td class="tr_title_edit"><label for="f_pagename">对应页面名称</label></td>
<td class="tr_content_edit"><select name='f_pageid' id="f_pageid">
<option value=""></option>
<option value="">新闻</option>
<option value="">通知</option>
</select></td>
</tr>
<tr id="ol" style="display:none">
<td class="tr_title_edit"><label for="f_navname">外部链接</label></td>
<td class="tr_content_edit"><input type="text" class="inputLine" size="40" id="f_outsidelink" name="f_outsidelink" /></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();
}
}
});
//}
});
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- js delete 用法(删除对象属性及变量)
- JQuery实现动态表格点击按钮表格增加一行
- js重写alert控件(适合学习js的新手朋友)
- 控制台报错object is not a function的解决方法
- Jquery仿IGoogle实现可拖动窗口示例代码
- JavaScript验证电子邮箱的函数
- jQuery实现列表自动滚动循环滚动展示新闻
- 用jquery修复在iframe下的页面锚点失效问题
- JavaScript实现的石头剪刀布游戏源码分享
- 一个很有趣3D球状标签云兼容IE8
- wap图片滚动特效无css3元素纯js脚本编写
- js在数组中删除重复的元素自保留一个(两种实现思路)
- js获取input长度并根据页面宽度设置其大小及居中对齐
- js使用正则实现ReplaceAll全部替换的方法
- IE浏览器IFrame对象内存不释放问题解决方法
- js中实现多态采用和继承类似的方法
- js中运算符&& 和 || 的使用记录
- 字段太多jquey快速清空表单内容方法
- jQuery .tmpl() 用法示例介绍