欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Jquery动态列功能完整实例

程序员文章站 2022-04-09 16:29:38
本文实例讲述了jquery动态列功能。分享给大家供大家参考,具体如下: 看到有人写的一个jquery动态列, 值得参考, 特转发下来

本文实例讲述了jquery动态列功能。分享给大家供大家参考,具体如下:

看到有人写的一个jquery动态列, 值得参考, 特转发下来

<!doctype html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<style>
body {
  margin: 50px 100px;
}
#datatable tr td{
  width: 100px;
  display: none;
}
.theader {
  background:#a4d4fc;
}
</style>
<script src="http://libs.baidu.com/jquery/1.8.1/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
//init page
var columns = ['column a', 'column b', 'column c', 'column d', 'column e', 'column f', 'column g'];
for(var i=0; i < columns.length; i++){
  //generate dropdown list
  $('#colselect').append('<option>' + columns[i] + '</option>');
  //generate header
  $('#datatable tr[class="theader"]').append('<td id="head_' + (i+1) +'"></td>');
  //generate table body
  $('#datatable tr[class="tbody"]').append('<td name="col_' + (i+1) + '"></td>');
}
//json format data
var data = {
  'column a': ['a1', 'a2', 'a3', 'a4', 'a5'],
  'column b': ['b1', 'b2', 'b3', 'b4', 'b5'],
  'column c': ['c1', 'c2', 'c3', 'c4', 'c5'],
  'column d': ['d1', 'd2', 'd3', 'd4', 'd5'],
  'column e': ['e1', 'e2', 'e3', 'e4', 'e5'],
  'column f': ['f1', 'f2', 'f3', 'f4', 'f5'],
  'column g': ['g1', 'g2', 'g3', 'g4', 'g5']
};
//generate tr as per data size
for(var i=0; ++i < data['column a'].length; ){
  $('#datatable').append($('#datatable tr:last').clone()); 
}
//after tr generate, add stripe style on tr
$("#datatable tr:even[class!='theader']").css("background","#efefef");
//register event on dropdown list.
var colindex = 0;
$('#colselect').change(function(e){
  $("#colselect option:selected").each(function () {
    var val = $(this).val();
    if(val){
      colindex++;
      $(this).remove();//remove selected from dropdown
      $('#head_'+colindex).text(val).show();//css('display', 'block');//display header, note:css('display', 'block') have compatibility issue on ff
      var idx = 0;
      $('td[name="col_'+colindex+'"]').each(function(){
        $(this).text(data[val][idx++]).show();//loop to put value in each tr for one column
      });
    }
   });
});
});
</script>
<title>jquery</title>
</head>
<body>
  <select id="colselect">
    <option value="">--select--</option>
  </select>
  <table id="datatable">
    <tr class="theader"></tr>
    <tr class="tbody"></tr>
  </table>
</body>
</html>

感兴趣的朋友可以使用在线html/css/javascript代码运行工具http://tools.jb51.net/code/htmljsrun测试上述代码运行效果。