jquery datatable 如何获取隐藏列的值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery datatable 如何获取隐藏列的值相关的知识,希望对你有一定的参考价值。
隐藏的列是自增的主键,我想实现单击表里的行,显示某些数据,$("#operateTable tbody tr").live('click', function () groupid = $(this).children('td').eq(0).html();这样做可以得到不隐藏的列值,但是一隐藏就得不到了,请教大神怎么才能得到隐藏的ID值啊?
var tableTest; function initTable() tableTest = $('#tableTest').dataTable( "bJQueryUI": true, "sPaginationType": "full_numbers", "aaData": [ ['101', 'aaa', '91,1', '2012-10-10', 'X'], ['102', 'bbb', '92,5', '2012-3-19', 'X'], ['103', 'ccc', '89,5', '2013-3-21', 'X'], ['105', 'eee', '95', '2011-11-11', 'C'], ['104', 'ddd', '91', '2013-2-22', 'X'] ], 'aaSorting':[ [1,'asc'],[2,'asc'] ], 'aoColumns':[ 'sTitle':'ID', 'sWidth':'20%','sClass':'center', 'sTitle':'Name', 'sWidth':'20%','sClass':'center', 'sTitle':'Score','sWidth':'20%','sClass':'center', 'sTitle':'Date', 'sWidth':'20%','sClass':'center', 'sTitle':'downLoad', 'sWidth':'20%',"bVisible": false,"bSearchable": false, 'sClass':'center', "mRender": function ( data, type, full ) return '<input type="text" class="userName" value="'+data+'"/>'; ] ); $('#tableTest').find('.userName').each(function() console.log($(this).val()); ); 有两个bVisible和bSearchable,如果设置bVisible:false,那么这列数据是不可访问的,bSearchAble:false是可以访问的,我感觉这边做的不是很好哎,就比方说我们一般都喜欢对表添加一列隐藏列,里面记录每行的id,方便数据访问,但是貌似这招这样不行。我想能不能用mReader来做,就比方上面代码,设置type='hidden',试验发现不行,看来我是明显天真了。但是想到mReader:function(data,type,full)其中的full就是这一列的所有信息,试验了一下,的却访问隐藏的那一列,那么通过这种变相的方法就可以访问隐藏的数据了。 总结一下,可以通过mReader:function(data,type,full)中的full参数获取一行所有信息(包括隐藏列),获取到的是一列字符串,然后通过spilt转换位数组,然后选取第几个。追问我照你说的试了试还是不行,可能是我哪里做的不对。能不能给详细讲讲怎么做啊?多谢了!
我的datatable里aoColumns里的代码是这样的:
"aoColumns": [ "mData": "id" ,"bVisible": false ,//想获取的就是这里的id的值
"mData": "name" ] );
你看看我说的visible为flase是获取不到隐藏列的值
你看看我说的visible为flase是获取不到隐藏列的值
追问那我要怎么设置才能既实现隐藏的效果又能获取到隐藏列的值呢?麻烦了。。会给你多加分的!
追答你看我给你回答的
有两个bVisible和bSearchable,如果设置bVisible:false,那么这列数据是不可访问的,bSearchAble:false是可以访问的,我感觉这边做的不是很好哎,就比方说我们一般都喜欢对表添加一列隐藏列,里面记录每行的id,方便数据访问,但是貌似这招这样不行。我想能不能用mReader来做,就比方上面代码,设置type='hidden',试验发现不行,看来我是明显天真了。但是想到mReader:function(data,type,full)其中的full就是这一列的所有信息,试验了一下,的却访问隐藏的那一列,那么通过这种变相的方法就可以访问隐藏的数据了。
总结一下,可以通过mReader:function(data,type,full)中的full参数获取一行所有信息(包括隐藏列),获取到的是一列字符串,然后通过spilt转换位数组,然后选取第几个。
//代码不全,就是那么个意思
'sTitle':'ID', 'sWidth':'20%','sClass':'center',
'sTitle':'Name', 'sWidth':'20%','sClass':'center',
'sTitle':'Date', 'sWidth':'20%','bVisible':false,'sClass':'center',
'sTitle':'downLoad', 'sWidth':'20%',"bSearchable": false, 'sClass':'center',
"mRender": function ( data, type, full )
return '';
]
);
var data;
$('#tableTest').find('.userName').each(function()
var data = $(this).val();
var s = data.split(",");
console.log(s[3]);
);
"columnDefs": [
"targets": [ 6 ], //隐藏第六列,从第0列开始
"visible": false
]
);
这里有所有的api:
http://www.datatables.net/
参考技术B楼主,
你所谓的datatable指的是什么,是指页面上的table控件还是内存的中虚拟表格?
推测可知是界面上的table控件。
如果是table控件,那么
<table>
<tr>
<td></td>
<td style="display: none;"></td>
<td style="visibility: hidden;"></td>
</tr>
</table>
<script type="text/javascript">
$(function ()
var td1 = $("table").find("tr").children("td").eq(1);
var td2 = $("table").find("tr").children("td").eq(2);
);
</script>
上面的td1和td2都是可以取得td对象的,也就是说在jQuery中,无论这个元素是display:none还是visibility: hidden这两中隐藏方式,都可以被jQuery获取得到。
因此认为你取不到td的原因可能是:
这个td不是隐藏了,而是在界面上被移除了
你获取的方法有不对的地方
我说的datatable不是简单的页面上的table。。
追答那你说的datatable是指什么?通常情况datatable是指内存中虚拟的表格
追问算是jQuery的插件吧,在页面上自动生成表格,显示数据,可以设置一些属性。
追答和我预期的一样,bVisible设置为false时界面上没有隐藏的这列的td,用jQuery也就访问不了
参考技术C 隐藏列的值一般情况下是可以获得的,只是不显示在界面上,他的值跟隐藏不隐藏没什么关系 参考技术D 这个应该是没有隐藏的行你能点击到,所以就能获得值了,而隐藏了的,在html中并不占据位置,你点击不到,就获取不了值了...你需要解决的是这个问题如何遍历jquery数据表中的隐藏列
我有一个隐藏列的数据表。我想将该列的值设置为java脚本数组。 (注意:我想获取仅属于当前页面的值)。如果我使用搜索过滤器,我想要搜索结果的当前页面的值。
我试过这样的。
$('#datatbl').DataTable().rows({filter: 'applied'}).every(function () {
var row = this.data();
arr.push(row[0]);
});
但是,此代码提供了所有页面中的所有值。请帮忙....
尝试在选择器中添加页面:'current'。
$('#datatbl').DataTable().rows({filter: 'applied', page:'current'})
以上是关于jquery datatable 如何获取隐藏列的值的主要内容,如果未能解决你的问题,请参考以下文章