zoukankan      html  css  js  c++  java
  • table表格

    一、table

      UpdateTime--2017年6月5日15:47:12

      (一)语法 

    <table>
        <thead>
            <th>表头(表格标题行):默认加粗显示</th>
        </thead>
        <tbody>
            <tr>
                <td>数据展示行</td>
            </tr>
        </tbody>
        <tfoot>
            <tr>
                <td>表注:总计行</td>
            </tr>
        </tfoot>
    </table>

      (二)常用属性

        1.2.1 table常用属性

    属性  描述  值
     align  水平对齐方式  left(默认)、center、right
     border  表格边框的宽度  数字(不需要声明单位:px)
     cellpadding  规定单元边沿与其内容之间的空白  px/%,通常设为1 
     cellspacing  规定单元格之间的空白  px/%,通常设为0
     width
     设置表格宽度  px/%
     height  设置表格高度  px/%

        

             

        1.2.2 td常用属性

    属性  描述  值
     align  单元格内容的水平对齐方式  left(默认)、center、right
     valign  设置单元格内容的垂直排列方式  top/middle/bottom
     width
     设置单元格宽度  px/%
     height  设置单元格高度  px/%
     bgcolor  设置单元格的背景颜色  rgb(x,x,x)/#xxxxxx/colorname
     colspan  设置单元格可横跨的列数  数字
     rowspan  设置单元格可竖跨的行数  数字
     nowrap  设置单元格中的内容不换行  nowrap
      注意:
        a.colspan(跨列)、rowspan(跨行)的数量n可以超过table的列数、行数m,当n>=m时,会合并整个table的列数、行数;
        b.width、height设值时,只声明数字,不用带px。
      (三)操作tr
        新增tr的三种方式,分两部分介绍:
        第一部分:js-动态插入、删除table行
        用到table的insertRow()和deleteRow()方法
    <input id = "userName" type="button" value="增加行" onclick="insertRow();"/>
    <input id = "userName" type="button" value="删除行1" onclick="delRow();"/>
    <input id = "userName" type="button" value="删除行3" onclick="delRow3();"/>
    <table id="testTab" border="1" style="border-collapse: collapse;" width="99%">
        <tr>
            <td>a1</td>
            <td>a2</td>
            <td>a3</td>
        </tr>
    </table>
        1.3.1 动态插入行
    /**
     * 在最后一个tr后插入行
     */
    function insertRow () {
        var table = document.getElementById("testTab");
        var newRow = table.insertRow(-1);//新增行(最后一行)
        var newCell1 = newRow.insertCell(0);//第一列
        newCell1.innerHTML = "b1";
        var newCell2 = newRow.insertCell(1);//第二个单元格
        newCell2.innerHTML = "b2";
        var newCell3 = newRow.insertCell(2);//第三个单元格
        newCell3.innerHTML = "b3";
        newRow.insertCell(3).innerHTML = "<input type='button' value='删除行2' onclick='delRow2(this);'/>"
    }
        1.3.2 删除行
    /**
     * 删除最后一行tr
     */
    function delRow () {
        var table = document.getElementById("testTab");
        var lastRowIndex = table.rows.length - 1;//最后一个tr的索引值
        table.deleteRow(lastRowIndex);    
    }
    /**
     * 删除指定行
     * @param {Object} input标签对象
     *         行索引
     */
    function delRow2 (inputObj) {
        var trObj = inputObj.parentNode.parentNode;
        var rowIndex = trObj.rowIndex;
        var table = trObj.parentNode;
        table.deleteRow(rowIndex);
    }
    /**
     * 有参无参都可以
     * @param {Object} input标签对象
     */
    function delRow3 (obj) {
        var tableObj = null;
        var rowIndex = -1;
        if (obj) {
            tableObj = obj.parentNode.parentNode.parentNode;
            rowIndex = obj.parentNode.parentNode.rowIndex;
        } else{
            tableObj = document.getElementById("testTab");
            rowIndex = tableObj.rows.length - 1;
        }
        tableObj.deleteRow(rowIndex);    
        
    }
        UpdateTime--2017年7月7日10:29:17
        第二部分:新增tr的另外两种方式 
        方式二:使用jQuery的clone()方法
        实例
          HTML部分
    <div style=" 99%; height: 98%; overflow: auto; margin: 0 auto;" id="inspectResContainer">
        <table class="Table" cellspacing="0" cellpadding="1" border="0">
            <tbody>
                <tr class="TableHeader" align="center">
                    <td class="TableHeaderCell" nowrap="nowrap" width="13%">标本名称</td>
                    <td class="TableHeaderCell" nowrap="nowrap">检验结果</td>
                    <td class="TableHeaderCell" nowrap="nowrap" width="13%">结果单位</td>
                    <td class="TableHeaderCell" nowrap="nowrap" width="13%">参考值</td>
                    <td class="TableHeaderCell" nowrap="nowrap" width="13%">检验状态</td>
                    <td class="TableHeaderCell" nowrap="nowrap" width="13%">特殊描述</td>
                </tr>
                <tr align="center" INSPECT_NO="">
                    <td nowrap="nowrap" class="TableCell" align="left">
                        <!-- 必要参数:检验单号 -->
                        <input type="hidden" name="INSPECT_NO" value="" />
                        <!-- 检验单名称 -->
                        <input type="hidden" name="INSPECT_NAME" value="" />
                        <!-- 标本号 -->
                        <input type="hidden" name="SPEC_NO" value="" />
                        <!-- 标本名称 -->
                        <input type="hidden" name="SPEC_NAME" value="" />
                        <!-- 检验结果 -->
                        <input type="hidden" name="TEST_RESULT" value="" />
                        <!-- 检验状态 -->
                        <input type="hidden" name="TEST_STATUS" value="" />
                        <!-- 结果单位 -->
                        <input type="hidden" name="UNIT" value="" />
                        <!-- 参考值下限 -->
                        <input type="hidden" name="LOW" value="" />
                        <!-- 参考值上限 -->
                        <input type="hidden" name="HIGH" value="" />
                        <!-- 特殊描述 -->
                        <input type="hidden" name="DESCRIBE" value="" />
                    </td>
                    <td nowrap="nowrap" class="TableCell" align="left"></td>
                    <td nowrap="nowrap" class="TableCell" align="left"></td>
                    <td nowrap="nowrap" class="TableCell" align="left"></td>
                    <td nowrap="nowrap" class="TableCell" align="left"></td>
                    <td nowrap="nowrap" class="TableCell" align="left"></td>
                </tr>
            </tbody>
        </table>
    </div>

          JAVASCRIPT部分   

    /**
     * 创建tr
     * @param divname
     * @returns tr对象
     */
    function createBlTr(divname){
        // 1.获取指定div后的table(这里div的子table只有一个,所以不需要指定是哪一个table对象)的第二行tr
        // 2.对其进行克隆
        // 3.将克隆的tr拼接到该table的末尾
        // 4.返回该table最后一行tr对象(返回的是jQuery对象)
        var newTr = $('#' + divname +'>table tr').eq(1).clone().appendTo("#" + divname + '>table');
        return newTr[0];//将jQuery对象转换成Dom对象
    }
    
    
    if(result.jydetail!=null){
        var i = 0 ;
        // 循环插入
        for( i=0; i <result.jydetail.length; i++){
            if(i>0){
                // 创建一个new tr并获取该tr对象
                var tr = createBlTr('inspectResContainer');
            }else{
                // 使用原表的第二行tr对象
                var tr = $('#inspectResContainer > table tr')[1];
            }
            /* 下面是对tr进行修改 */
            // 检验单号
            var assay_no = result.jydetail[i].assay_no;
            // 为该行tr设置自定义属性:检验单号
            tr.setAttribute('inspect_no',assay_no);
            // 检验单名称
            var assay_name = result.jydetail[i].assay_name;
            // 标本号
            var index_no = result.jydetail[i].index_no; 
            // 标本名称
            var index_name = result.jydetail[i].index_name;
            // 检验结果
            var result2 = result.jydetail[i].result; 
            // 检验状态
            var status = result.jydetail[i].status; 
            // 结果单位
            var unit = result.jydetail[i].unit;
            // 参考值
            var range = result.jydetail[i].range; 
            // 特殊描述
            var note = result.jydetail[i].note; 
            
            var cell = tr.cells[0];
    
            $(cell).find('[name="INSPECT_NO"]').val(assay_no);
            $(cell).find('[name="INSPECT_NAME"]').val(assay_name);
            $(cell).find('[name="SPEC_NO"]').val(index_no);
            $(cell).find('[name="SPEC_NAME"]').val(index_name);
            $(cell).find('[name="TEST_RESULT"]').val(result2);
            $(cell).find('[name="TEST_STATUS"]').val(status);
            $(cell).find('[name="UNIT"]').val(unit);
            $(cell).find('[name="HIGH"]').val(range);
            $(cell).find('[name="DESCRIBE"]').val(note);
            cell.innerHTML += assay_name;
            tr.cells[1].innerHTML = result2;
            tr.cells[2].innerHTML = unit;
            tr.cells[3].innerHTML = range;
            tr.cells[4].innerHTML = status;
            tr.cells[5].innerHTML = note;
        }
    
    } 
        方式三:字符串拼接
          HTML部分
    <div id="yzDiv" class="Container">
        <table class="my_table" border="0" cellpadding="1" cellspacing="0" align="center" id="yzTable">
            <tr>
                <td style="background-color: #F8F9FA;">
                    医嘱类型
                </td>
                <td style="background-color: #F8F9FA;">开始时间</td>
                <td style="background-color: #F8F9FA;">结束时间</td>
                <td style="background-color: #F8F9FA;">饮片处方</td>
            </tr>
        </table>
    </div>

           JAVASCRIPT部分

    if(result.yzxx!=null){
        for(var i = 0; i <result.yzxx.length; i++){
            
            // 医嘱编号
            var dockmark_no = result.yzxx[i].dockmark_no;
            // 医嘱子编号
            var dockmark_sub_no = result.yzxx[i].dockmark_sub_no;
            // 医嘱期限
            var term = result.yzxx[i].term;
            // 医嘱类型
            var type = result.yzxx[i].type;
            // 医嘱内容
            var content = result.yzxx[i].content;
            
            var t = result.yzxx[i].start_time;
            // 医嘱下达时间
            var start_time = (t != null)?new Date(t).formatDate('yyyy-MM-dd HH:mm'):""; 
            
            var t1 = result.yzxx[i].end_time; 
            // 结束时间
            var end_time = (t1 != null)?new Date(t1).formatDate('yyyy-MM-dd HH:mm'):"";
            // 用法
            var usagename = result.yzxx[i].usagename;
            // 频率
            var hz = result.yzxx[i].hz; 
            // 剂数
            var dose = result.yzxx[i].dose;
            
            var trTemplate = '<tr>' 
                                  + '<td>'
                                        + type
                                        + '<input type="hidden" name="DOCKMARK_NO" value="'+ dockmark_no +'"/>'
                                        + '<input type="hidden" name="DOCKMARK_SUB_NO" value="'+ dockmark_sub_no +'"/>'
                                        + '<input type="hidden" name="TERM" value="'+ term +'"/>'
                                        + '<input type="hidden" name="TYPE" value="'+ type +'"/>'
                                        + '<input type="hidden" name="CONTENT" value="'+ content +'"/>'
                                        + '<input type="hidden" name="START_TIME" value="'+ start_time +'"/>'
                                        + '<input type="hidden" name="END_TIME" value="'+ end_time +'"/>'
                                        + '<input type="hidden" name="USAGENAME" value="'+ usagename +'"/>'
                                        + '<input type="hidden" name="HZ" value="'+ hz +'"/>'
                                        + '<input type="hidden" name="DOSE" value="'+ dose +'"/>'
                                  +'</td>'
                                  + '<td>'+ start_time + '</td>'
                                  + '<td>'+ end_time + '</td>'
                                  + '<td align="left">'
                          + content  
                          +'<div style="display:inline-block;text-align:right;min-100px;padding-right:50px;float:right;color:#0000ff">'
                            + '&nbsp;&nbsp;&nbsp;&nbsp;' + usagename + '&nbsp;&nbsp;' + hz + '&nbsp;&nbsp;' + dose 
                          + '</div>' 
                      + '</td>'
                            +'</tr>';
            
            
            $('#yzTable').append(trTemplate);
        }
    }

        UpdateTime--2017年7月17日10:45:30

        1.3.3 选中当前行变色

        CSS部分

    .TableRowSelected {
        cursor: hand;
        height: 21px;
        background-color: #DEECF5;
        color: #000;
    }
    
    .TableRow {
        cursor: hand;
        height: 21px;
        background-color: #e7e9e6;
        color: #000;
    }
    
    .TableRowOver {
        cursor: hand;
        height: 21px;
        background-color: #DEECF5;
    }
    
    .TableRow {
        height: 21px;
        background-color: #ffffff;
    }
    
    .TableCell {
        height: 25px;
        line-height: 25px;
        text-indent: 3px;
        color: #555;
        border-bottom: #CECECE 1px solid;
    }
    
    .TableCellIndex {    
        line-height: 21px;
        color: #000;
        border-right: #CECECE 1px solid;
        border-bottom: #CECECE 1px solid;
    } 
        HTML部分
    <table cellspacing="0" cellpadding="1" border="0" width="100%">
        <tbody>
            <tr oldClass="TableRow" class="TableRow" onclick="javascript:RowSelect(this);"
                key="${s.index+1 }" totalRecord="${fn:length(model.DCOURSELIST)}"
                COURSE_NAME="${row.COURSE_NAME }" COURSE_CONTENT="${row.COURSE_CONTENT }"
                onmouseover="javascript:if (this.className!='TableRowSelected') this.className='TableRowOver'"
                onmouseout="javascript:if (this.className!='TableRowSelected') this.className='TableRow'">
                <td class="TableCellIndex" nowrap="nowrap">1</td>
                <td class="TableCell" nowrap="nowrap">病程名称1</td>
                <td class="TableCell" nowrap="nowrap">书写时间1</td>  
            </tr>
            <tr oldClass="TableRow" class="TableRow" onclick="javascript:RowSelect(this);"
                key="${s.index+1 }" totalRecord="${fn:length(model.DCOURSELIST)}"
                COURSE_NAME="${row.COURSE_NAME }" COURSE_CONTENT="${row.COURSE_CONTENT }"
                onmouseover="javascript:if (this.className!='TableRowSelected') this.className='TableRowOver'"
                onmouseout="javascript:if (this.className!='TableRowSelected') this.className='TableRow'">
                <td class="TableCellIndex" nowrap="nowrap">2</td>
                <td class="TableCell" nowrap="nowrap">病程名称2</td>
                <td class="TableCell" nowrap="nowrap">书写时间2</td>  
            </tr>
        </tbody>
    </table>

         JAVASCRIPT部分

    function RowSelect(row, name) {
        if (!name)
            name = "row";
        if (window[name]) {
            window[name].className = window[name].getAttribute("oldClass");
        }
        row.className = "TableRowSelected";
        window[name] = row;
    }

        UpdateTime--2017年7月28日11:07:26 

        1.3.4 改变table里面的内容
          1.3.4.1 错误方式
          document.getElementById("tableId").innerHTML = "文本内容";
          $('#tableId').html('文本内容');
          原因:IE8及以下版本不支持table在空节点的情况下插入内容,即:内容必须写在td里面。
          ie9以上支持这种方式,效果展示
          1.3.4.2 正确方式(标准格式)
          document.getElementById("tableId").innerHTML = '<tr><td>文本内容</tr></td>';   
          1.3.4.3 直接清空table下面的内容
          document.getElementById("tableId").innerHTML = "";      
    2020/04/29
      table边框样式
      设置在table标签添加border属性,将边框宽度设置为1,你会发现其实边框的宽度为2
     

      如何将边框宽度设置为1?

      table添加border-collapse样式即可。

      方式一
    <table id="tab" border="1" style="border-collapse:collapse;">
    </table> 
      方式二
    table {
        border-collapse:collapse;
    }
    table,td {
        border:1px solid #000;
    }
    

      

    写在最后

      哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

     相关推荐:

  • 相关阅读:
    《构建之法》阅读报告
    教务管理系统类图及数据库E/R图
    设计模式:抽象工厂
    结对项目:四则运算程序测试
    Leetcode笔记之57和为s的连续正数序列
    Leetcode笔记之1103分糖果 II
    Leetcode笔记之199二叉树的右视图
    每日Scrum(9)
    每日Scrum(7)
    每日Scrum(6)
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/6713002.html
Copyright © 2011-2022 走看看