zoukankan      html  css  js  c++  java
  • 汇总常用的jQuery操作Table tr td方法

    虽然现在DIV+CSS进行页的布局大行其道,但是很多地方使用table还是有很多优势,用table展示数据是比较方便的,下面汇总了jQuery操作Table tr td常用的方法,熟记这些操作技巧,下次再使用的到时候,会让你如鱼得水,提高开发效率。

    1.鼠标移动行变色

    $("#table1 tr").hover(function(){   

    $(this).children("td").addClass("hover")   

    },function(){   

    $(this).children("td").removeClass("hover")   

    })   

     方法二:

    $("#table1 tr:gt(0)").hover(function() {   

    $(this).children("td").addClass("hover");   

    }, function() {   

    $(this).children("td").removeClass("hover");   

    });   

    2.奇偶行不同颜色

    $("#table1 tbody tr:odd").css("background-color", "#bbf");   

    $("#table1 tbody tr:even").css("background-color","#ffc");   

    $("#table1 tbody tr:odd").addClass("odd")   

    $("#table1 tbody tr:even").addClass("even")   

    3.隐藏一行

    $("#table1 tbody tr:eq(3)").hide();   

    4.隐藏一列

    $("#table1 tr td::nth-child(3)").hide();  

    方法二:

    [html]   view plain copy

    $("#table1 tr").each(function(){$("td:eq(3)",this).hide()});   

    5.删除一行

    //删除除第一行外的所有行   

    $("#table1 tr:not(:first)").remove();  

    //删除指定行  

    $("#table1 tr:eq(3)").remove();  

    6.删除一列

    //删除除第一列外的所有列   

    $("#table1 tr th:not(:nth-child(1))").remove();  

    $("#table1 tr td:not(:nth-child(1))").remove();  

    //删除第一列  

    $("#table1 tr td::nth-child(1)").remove();  

    7.得到(设置)某个单元格的值

    //设置table1,第2个tr的第一个td的值。   

    $("#table1 tr:eq(1) td:nth-child(1)").html("value");   

    //获取table1,第2个tr的第一个td的值。   

    $("#table1 tr:eq(1) td:nth-child(1)").html();  

    8.插入一行:

    < strong > //在第二个tr后插入一行   

    $(" < tr > < td > 插入3 </ td > < td > 插入 </ td > < td > 插入 </ td > < td > 插入 </ td > </ tr > ").insertAfter($("#table7 tr:eq(1)")); </ strong >   

    9、获取每一行指定的单元格的值

    var  arr  = [];  

    $("#table1 tr td:nth-child(1)").each(function (key, value) {  

    arr.push($(this).html());  

    });  

    var  result  =  arr .join(',');  

    10、全选或全不选

    //方法一:  

    //全选或全不选 此传入的参数为event 如:checkAll(event)  

     function checkAll(evt)  

     {  

      evt = evt ?evt:window.event;  

     var  chall = evt .target?evt.target:evt.srcElement;  

     var  tbl =$("#table1");  

     var  trlist = tbl .find("tr");  

     for(var  i = 1 ;i < trlist.length ;i++)  

     {  

     var  tr =$(trlist[i]);  

     var  input = tr .find("INPUT[ type = 'checkbox' ]");  

     input.attr("checked",chall.checked);  

     }  

     }  

      

    //方法二:  

     

    //全选或全不选 此传入的参数为this 如:checkAll(this)  

    function checkAll(evt)  

    {  

    var  tbl =$("#table1");  

    var  trlist = tbl .find("tr");  

    for(var  i = 1 ;i < trlist.length ;i++)  

    {  

    var  tr =$(trlist[i]);  

    var  input = tr .find("INPUT[ type = 'checkbox' ]");  

    input.attr("checked",evt.checked);  

    }  

    }  

      

    //方法三:  

    //全选或全不选 此传入的参数为this 如:checkAll(this)  

    function checkAll(evt)  

    {  

    $("#table1 tr").find("input[ type = 'checkbox' ]").each(function(i){  

    $(this).attr("checked",evt.checked)  

    });  

    }  

      

    //方法四:  

    //全选或全不选 此传入的参数为this 如:checkAll(this)  

    function checkAll(evt)  

    {  

    $("#table1 tr").find("input[ type = 'checkbox' ]").attr("checked",evt.checked);  

    }  

    11、客户端动态添加行、删除行

    function btnAddRow()  

    {  

    //行号是从0开始,最后一行是新增、删除、保存按钮行 故减去2  

    var  rownum =$("#table1 tr").length-2;  

    var  chk = "<input type='checkbox' id='chk_" +rownum+"'  name = 'chk_"+rownum+"' /> ";  

    var  text = "<input type='text' id='txt_" +rownum+"'  name = 'txt_"+rownum+"'   width = '75px' /> ";  

    var  sel = "<select id='sel_" +rownum+"' > < option   value = '1' > 男 </ option > < option   value = '0' > 女 </ option > </ select > ";  

    var  row = "<tr><td>" +chk+" </ td > < td > "+text+" </ td > < td > "+sel+" </ td > < td > "+text+" </ td > < td > "+text+" </ td > </ tr > ";  

    $(row).insertAfter($("#table1 tr:eq("+rownum+")"));   

    }  

      

    //客户端删除一行  

    //每次只能删除一行,删除多行时出错  

    function btnDeleteRow()  

    {  

    $("#table1 tr").find("input[ type = 'checkbox' ]").each(function(i){  

    if($(this).attr("checked"))  

    {   

    if(i!=0)//不能删除行标题  

    {  

    $("#table1 tr:eq("+i+")").remove();  

    }  

    }  

    });  

    }  

      

    //这个比上面的要好,可以一下删除多个记录  

    function btnDeleteRow()  

    {  

    $("#table1 tr").each(function(i){  

    var  chk =$(this).find("input[ type = 'checkbox' ]");  

    if(chk.attr("id")!="checkall")//不能删除标题行  

    {  

    if(chk.attr("checked"))  

    {  

    $(this).remove();  

    }  

    }  

    });  

    }  

    //客户端保存  

    function btnSaveClick()  

    {  

    //find()方法中我暂时不知道如何设定多个筛选条件,所以下面得不到select列表的值  

    //$("#table1 tr td").find("input[ type = 'text' ]" || "select").each(function(i){  

    //alert($(this).val());  

    //});  

      

    $("#table1 tr").find("td").each(function(i){  

    if($(this).find("input[ type = 'text' ]").length > 0)  

    {  

    alert($(this).find("input[ type = 'text' ]").val());  

    }  

    else if($(this).find("select").length > 0)  

    {  

    alert($(this).find("select").val());  

    }  

    });  

    }

    jQuery操作Table学习总结

    jQuery在客户端操作Table学习:不过有很多很多的不足,还需要学习掌握。

    <style type="text/css">
           .hover
           {
               
           }
        </style>
    <table id="table1" border="1" cellpadding="0" cellspacing="0">
        <tr>
        <th>
        <input type="checkbox" id="checkall" onclick="checkAll1(this)"/>
        </th>
        <th>姓名</th>
        <th>性别</th>
        <th>密码</th>
        <th>地址</th>
        </tr>
        <tr>
        <td>
        <input type="checkbox" id="Checkbox1" />
        </td>
        <td>张三</td>
        <td>男</td>
        <td>zhangsan</td>
        <td>上海</td>
        </tr>
        <tr>
        <td>
        <input type="checkbox" id="Checkbox2" />
        </td>
        <td>李四</td>
        <td>男</td>
        <td>lisi</td>
        <td>安庆</td>
        </tr>
        <tr>
        <td>
        <input type="checkbox" id="Checkbox3" />
        </td>
        <td>王五</td>
        <td>男</td>
        <td>beijing</td>
        <td>北京</td>
        </tr>
        <tr>
        <td>
        <input type="checkbox" id="Checkbox4" />
        </td>
        <td>无名氏</td>
        <td>女</td>
        <td>wumingshi</td>
        <td>上海</td>
        </tr>
        <tr>
        <td>
        <input type="checkbox" id="Checkbox5" />
        </td>
        <td>赵老师</td>
        <td>男</td>
        <td>zhaolaoshi</td>
        <td>浙江</td>
        </tr>
        <tr>
        <td colspan="5" align="center">
        <input type="button" id="btnAdd" runat="server" value="新增" onclick="btnAddRow()" />&nbsp;&nbsp;&nbsp;&nbsp;
        <input type="button" id="btnDelete" runat="server" value="删除" onclick="btnDeleteRow()" />&nbsp;&nbsp;&nbsp;&nbsp;
        <input type="button" id="btnSave" runat="server" value="保存" onclick="btnSaveClick()" />
        </td>
        </tr>
        </table>
    操作:

    1.鼠标移动行变色
    方法一:jQuery中的hover(fun(),fun())方法,参数一:第一个方法是添加样式功能,参数二:第二个方法是取消样式功能
    $("#table1 tr").hover(function(){ 
        $(this).children("td").addClass("hover") 
    },function(){ 
        $(this).children("td").removeClass("hover") 
    }) 

    方法二:
    $("#table1 tr:gt(0)").hover(function() { 
        $(this).children("td").addClass("hover"); 
    }, function() { 
        $(this).children("td").removeClass("hover"); 
    }); 

    2.奇偶行不同颜色
    $("#table1 tbody tr:odd").css("background-color", "#bbf"); 
    $("#table1 tbody tr:even").css("background-color","#ffc");  
    $("#table1 tbody tr:odd").addClass("odd") 
    $("#table1 tbody tr:even").addClass("even") 

    3.隐藏一行
    $("#table1 tbody tr:eq(3)").hide(); 
    4.隐藏一列
    方法一:
    $("#table1 tr td::nth-child(3)").hide();
     
    方法二:
    $("#table1 tr").each(function(){$("td:eq(3)",this).hide()});  

    5.//删除一行
    //删除除第一行外的所有行 
         $("#table1 tr:not(:first)").remove();
    //删除指定行
         $("#table1 tr:eq(3)").remove();
     
    6.//删除一列
    //删除除第一列外的所有列 
         $("#table1 tr th:not(:nth-child(1))").remove();
         $("#table1 tr td:not(:nth-child(1))").remove();
    //删除第一列
         $("#table1 tr td::nth-child(1)").remove();
     
    7.得到(设置)某个单元格的值
    //设置table1,第2个tr的第一个td的值。   
    $("#table1 tr:eq(1) td:nth-child(1)").html("value");   
    //获取table1,第2个tr的第一个td的值。   
    $("#table1 tr:eq(1) td:nth-child(1)").html();
     
    8.插入一行:
    /在第二个tr后插入一行 
    $("<tr><td>插入3</td><td>插入</td><td>插入</td><td>插入</td></tr>").insertAfter($("#table7 tr:eq(1)"));

    9:获取每一行指定的单元格的值
    var arr = [];
    $("#table1 tr td:nth-child(1)").each(function (key, value) {
       arr.push($(this).html());
    });
    var result = arr.join(',');

    //全选或全不选
    //方法一:
    //全选或全不选 此传入的参数为event 如:checkAll(event)
       function checkAll(evt)
       {
         evt=evt?evt:window.event;
         var chall=evt.target?evt.target:evt.srcElement;
         var tbl=$("#table1");
         var trlist=tbl.find("tr");
         for(var i=1;i<trlist.length;i++)
         {
             var tr=$(trlist[i]);
             var input=tr.find("INPUT[type='checkbox']");
               input.attr("checked",chall.checked);
         }
       }

    //方法二:
    //全选或全不选 此传入的参数为this 如:checkAll(this)
      function checkAll(evt)
      {
          var tbl=$("#table1");
          var trlist=tbl.find("tr");
          for(var i=1;i<trlist.length;i++)
        {
            var tr=$(trlist[i]);
            var input=tr.find("INPUT[type='checkbox']");
              input.attr("checked",evt.checked);
        }
      }

    //方法三:
    //全选或全不选 此传入的参数为this 如:checkAll(this)
    function checkAll(evt)
    {
        $("#table1 tr").find("input[type='checkbox']").each(function(i){
        $(this).attr("checked",evt.checked)
        });
    }

    //方法四:
    //全选或全不选 此传入的参数为this 如:checkAll(this)
    function checkAll(evt)
    {
        $("#table1 tr").find("input[type='checkbox']").attr("checked",evt.checked);
    }

    //客户端动态添加行
    function btnAddRow()
    {
        //行号是从0开始,最后一行是新增、删除、保存按钮行 故减去2
        var rownum=$("#table1 tr").length-2;
        var chk="<input type='checkbox' id='chk_"+rownum+"' name='chk_"+rownum+"'/>";
        var text="<input type='text' id='txt_"+rownum+"' name='txt_"+rownum+"' width='75px'/>";
        var sel="<select id='sel_"+rownum+"'><option value='1'>男</option><option value='0'>女</option></select>";
        var row="<tr><td>"+chk+"</td><td>"+text+"</td><td>"+sel+"</td><td>"+text+"</td><td>"+text+"</td></tr>";
        $(row).insertAfter($("#table1 tr:eq("+rownum+")"));   
    }

    //客户端删除一行
    //每次只能删除一行,删除多行时出错
    function btnDeleteRow()
    {
       $("#table1 tr").find("input[type='checkbox']").each(function(i){
       if($(this).attr("checked"))
       { 
           if(i!=0)//不能删除行标题
           {
                $("#table1 tr:eq("+i+")").remove();
           }
       }
       });
    }

    //这个比上面的要好,可以一下删除多个记录
    function btnDeleteRow()
    {
       $("#table1 tr").each(function(i){
           var chk=$(this).find("input[type='checkbox']");
           if(chk.attr("id")!="checkall")//不能删除标题行
           {
           if(chk.attr("checked"))
           {
              $(this).remove();
           }
           }
        });
    }

    //客户端保存
    function btnSaveClick()
    {
       //find()方法中我暂时不知道如何设定多个筛选条件,所以下面得不到select列表的值
       //$("#table1 tr td").find("input[type='text']" || "select").each(function(i){
       //alert($(this).val());
       //});
                 
       $("#table1 tr").find("td").each(function(i){
          if($(this).find("input[type='text']").length>0)
          {
              alert($(this).find("input[type='text']").val());
          }
          else if($(this).find("select").length>0)
          {
              alert($(this).find("select").val());
          }
        });
    }

        $(".table tbody tr").find("td:first input:checkbox").each(function () {

            var ischecked = $(this).prop("checked");

            alert(ischecked);

     

        });

     

        $("table input:checkbox").each(function () {

            if ($(this).attr("checked") == true)

            {

                alert($("table input:checkbox").index(this))

            }

        });

       

     

        var data = [];

       

        $(".table tbody tr").find(":checkbox:checked").each(function () {

            var val = $(this).parent().next().text();

            data.push(val);

            alert(val);

        });

        alert(data);

  • 相关阅读:
    函数
    python操作文件
    POJ-2689-Prime Distance(素数区间筛法)
    POJ-2891-Strange Way to Express Integers(线性同余方程组)
    POJ-2142-The Balance
    POJ-1061-青蛙的约会(扩展欧几里得)
    Educational Codeforces Round 75 (Rated for Div. 2) D. Salary Changing
    Educational Codeforces Round 75 (Rated for Div. 2) C. Minimize The Integer
    Educational Codeforces Round 75 (Rated for Div. 2) B. Binary Palindromes
    Educational Codeforces Round 75 (Rated for Div. 2) A. Broken Keyboard
  • 原文地址:https://www.cnblogs.com/huangf714/p/5799059.html
Copyright © 2011-2022 走看看