jqTable 添加删除一列

本文介绍使用JQuery进行表格操作的方法,包括鼠标悬停时改变行背景色、设置奇偶行不同颜色及动态控制列的显示与隐藏等功能实现。


<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="Pragma" content="no-cache">    
<script type="text/javascript" src="${rc.contextPath}/scripts/common/jquery/jquery-1.8.2.js"></script>
<title>JQUERY TABLE</title>
<style>
table
{
    border-collapse: collapse;
    border-spacing: 0;
    margin-right: auto;
    margin-left: auto;
    width: 800px;
 }
 th, td
 {
    border: 1px solid #b5d6e6;
    font-size: 12px;
    font-weight: normal;
    text-align: center;
    vertical-align: middle;
    height: 20px;
 }
 th
 {
    background-color: Gray;
 }   
 
 .hover
{
  background-color: #cccc00;
}
.odd{ background-color: #bbf;}
.even{ background-color:#ffc; }
</style>
<script>
$(document).ready(function () {
    //鼠标移动到行变色,单独建立css类hover
    //tr:gt(0):表示获取大于 tr index 为0 的所有tr,即不包括表头
    $("#table1 tr:gt(0)").hover(
    function () { $(this).addClass("hover") },
    function () { $(this).removeClass("hover") })
});


$(document).ready(function () {
    //奇偶行不同颜色
    $("#table2 tbody tr:odd").addClass("odd"),
    $("#table2 tbody tr:even").addClass("even")
    //或者
    //$("#table2 tbody tr:odd").css("background-color", "#bbf"),
    //$("#table2 tbody tr:even").css("background-color", "#ffc")
});
$(document).ready(function () {
   $("#addcl").click(function(){
    if($("#addcl").val()=="删除第二列"){
  $("#table3 tr th:eq(1)").hide();
  $("#table3 tr td:nth-child(2)").hide();
  $("#addcl").val("添加第二列");
    }
     else{
  $("#table3 tr th:eq(1)").css("display", "");
          $("#table3 tr td:nth-child(2)").css("display", "");
 $("#addcl").val("删除第二列");
    }
   });
  
      });
</script>
</head>
<body>
  <table id="table1">
        <tr>
            <th style="width: 160px;">表头一</th>
            <th style="width: 160px;">表头二 </th>
            <th style="width: 160px;">表头三</th>
            <th style="width: 160px;">表头四</th>
            <th style="width: 160px;">表头五</th>
        </tr>
        <tr>
            <td>第一行第一列</td>
            <td>第一行第二列</td>
            <td>第一行第三列</td>
            <td>第一行第四列</td>
            <td>第一行第五列</td>
        </tr>
        <tr>
            <td>第二行第一列</td>
            <td>第二行第二列</td>
            <td>第二行第三列</td>
            <td>第二行第四列</td>
            <td>第二行第五列</td>
        </tr>
        <tr>
            <td>第三行第一列</td>
            <td>第三行第二列</td>
            <td>第三行第三列</td>
            <td>第三行第四列</td>
            <td>第三行第五列</td>
        </tr>
        <tr>
            <td>第四行第一列</td>
            <td>第四行第二列</td>
            <td>第四行第三列</td>
            <td>第四行第四列</td>
            <td>第四行第五列</td>
        </tr>
</table>
<br/>
  <table id="table2">
        <tr>
            <th style="width: 160px;">表头一</th>
            <th style="width: 160px;">表头二 </th>
            <th style="width: 160px;">表头三</th>
            <th style="width: 160px;">表头四</th>
            <th style="width: 160px;">表头五</th>
        </tr>
        <tr>
            <td>第一行第一列</td>
            <td>第一行第二列</td>
            <td>第一行第三列</td>
            <td>第一行第四列</td>
            <td>第一行第五列</td>
        </tr>
        <tr>
            <td>第二行第一列</td>
            <td>第二行第二列</td>
            <td>第二行第三列</td>
            <td>第二行第四列</td>
            <td>第二行第五列</td>
        </tr>
        <tr>
            <td>第三行第一列</td>
            <td>第三行第二列</td>
            <td>第三行第三列</td>
            <td>第三行第四列</td>
            <td>第三行第五列</td>
        </tr>
        <tr>
            <td>第四行第一列</td>
            <td>第四行第二列</td>
            <td>第四行第三列</td>
            <td>第四行第四列</td>
            <td>第四行第五列</td>
        </tr>
</table>
<br/>
<div align="center"><input type="button" id="addcl" value="删除第二列" /></div>
  <table id="table3">
        <tr>
            <th style="width: 160px;">表头一</th>
            <th style="width: 160px;">表头二 </th>
            <th style="width: 160px;">表头三</th>
            <th style="width: 160px;">表头四</th>
            <th style="width: 160px;">表头五</th>
        </tr>
        <tr>
            <td>第一行第一列</td>
            <td>第一行第二列</td>
            <td>第一行第三列</td>
            <td>第一行第四列</td>
            <td>第一行第五列</td>
        </tr>
        <tr>
            <td>第二行第一列</td>
            <td>第二行第二列</td>
            <td>第二行第三列</td>
            <td>第二行第四列</td>
            <td>第二行第五列</td>
        </tr>
        <tr>
            <td>第三行第一列</td>
            <td>第三行第二列</td>
            <td>第三行第三列</td>
            <td>第三行第四列</td>
            <td>第三行第五列</td>
        </tr>
        <tr>
            <td>第四行第一列</td>
            <td>第四行第二列</td>
            <td>第四行第三列</td>
            <td>第四行第四列</td>
            <td>第四行第五列</td>
        </tr>
         <tr>
            <td>第五行第一列</td>
            <td>第五行第二列</td>
            <td>第五行第三列</td>
            <td>第五行第四列</td>
            <td>第五行第五列</td>
        </tr>
</table>
</body>
</html>
<think>首先,用户的问题是:“我想查找为原生table添加序号的方法 请问如何为原生table添加序号”。用户明确要求为原生table添加序号的方法。参考了站内引用,但用户说这些引用仅供参考,不是真正的需求,我需要参考用户上一次的问题和我的回答。 回顾系统级指令: - 所有行内数学表达式必须用$...$格式。 - 独立公式用$$...$$格式。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 回答中引用的段落末尾自然地添加引用标识。 - 回答结构清晰,帮助用户逐步解决问题,保证真实可靠。 用户没有提供上一次的问题,所以我假设这是第一次互动。用户的问题是关于为原生table添加序号的方法。 从引用[1]和引用[2]中提取相关信息: imitate - 引用[1]:提供了jq动态添加table表格序号的方法,包括原生jq和vue。原生jq的方法是:`list += "<td>"+(parseInt(page)-parseInt(1)) * parseInt(per)+(i+1)+"<td>";`,并提到需要放在for循环中。 6969 - 引用[2]:提到了在el-table中处理排序,使用`type="index"`和自定义索引方法。 用户指定了要为原生table添加序号,所以我应该专注于原生JavaScript或jQuery方法,而不是框架如Vue或Element UI。 关键点:用户说“原生table”,可能指的是普通的HTML表格,使用纯JavaScript或jQuery。 步骤来构建回答: 1. **理解需求**:解释原生table是指使用HTML `<table>`元素创建的表格。 2. **方法概述**:提供几种方法来添加序号。 3. **详细步骤**:逐步解释如何实现。 4. **代码示例**:给出代码片段。 5. **注意事项**:提醒常见问题。 6. **生成相关问题**:在末尾添加相关问题。 确保回答使用中文。 结构回答: - 开头:确认用户需求。 - 主体:提供解决方案。 - 结尾:添加相关问题。 具体方法: 1. **使用纯JavaScript**:在创建表格行时,添加一个序号列。 - 示例:在for循环中,为每一行添加一个td元素,内容为行号。 2. **使用jQuery**:类似,但使用jQuery语法。 - 参考引用[1]中的jq方法。 3. **其他方法**:如使用CSS计数器或JavaScript事件,但序号方法最简单。 在回答中,自然地引用提供的引用。既然用户说不是真正的需求,但我可以参考它们。 引用[1]有原生jq的方法:`list += "<td>"+(parseInt(page)-parseInt(1)) * parseInt(per)+(i+1)+"<td>";`。这考虑了分页,其中page是当前页,per是每页条数,i是索引。 对于原生table,如果没有分页,序号可以更简单。 生成相关问题: - 如系统示例所示,添加“§§相关问题§§”部分。 确保LaTeX:用户问题中没有数学表达式,但如果有,需处理。这里可能不需要。 回答结构: 1. 介绍:解释如何为原生table添加序号。 2. 方法1:纯JavaScript。 3. 方法2:jQuery(参考引用)。 4. 代码示例。 5. 注意事项。 6. 相关问题。 在引用中,自然地添加引用标识,如[^1]。 </think> ### 为原生table添加序号的方法 为原生HTML表格(使用纯JavaScript或jQuery实现)添加序号,是一种常见的需求,通常用于在表格左侧显示行号(如1,2,3,...)。序号可以是静态的(从1开始)或动态的(考虑分页)。以下是基于原生JavaScript和jQuery的逐步实现方法,确保代码简洁可靠。我会参考站内引用中的关键点[^1][^2],但聚焦原生场景。 #### 1. **理解核心逻辑** - **序号生成原理**:在创建表格行(`<tr>`)时,添加一个额外的单元格(`<td>`),内容为行索引值。 - **分页处理**:如果表格有分页(例如每页显示10条),序号需计算偏移量:`(当前页 - 1) * 每页条数 + 当前行索引 + 1`。 - **关键步骤**: - 在循环中添加行时动态计算序号。 - 将序号插入到每行的第一个单元格。 #### 2. **方法一:纯JavaScript实现** 适用于原生HTML表格,无需额外库。假设已有表格数据,通过循环动态构建行。 ```javascript // 假设: tableBody 是表格的 tbody 元素, data 是数据数组, page 是当前页码, perPage 是每页条数 function addRowNumbers(tableBody, data, page = 1, perPage = data.length) { tableBody.innerHTML = ''; // 清空表格 for (let i = 0; i < data.length; i++) { const row = document.createElement('tr'); // 添加序号列: 计算序号值 (e.g., 第一页: i+1; 分页时: (page-1)*perPage + i+1) const seqCell = document.createElement('td'); const seqValue = (parseInt(page) - 1) * parseInt(perPage) + (i + 1); // 参考引用[1]的序号计算 seqCell.textContent = seqValue; row.appendChild(seqCell); // 添加数据列 (示例: 假设数据对象有 name 和 age) const nameCell = document.createElement('td'); nameCell.textContent = data[i].name; row.appendChild(nameCell); const ageCell = document.createElement('td'); ageCell.textContent = data[i].age; row.appendChild(ageCell); tableBody.appendChild(row); } } // 使用示例 const tbody = document.getElementById('myTableBody'); // 替换为你的tbody ID const sampleData = [{name: 'Alice', age: 30}, {name: 'Bob', age: 25}]; addRowNumbers(tbody, sampleData, 1, 10); // 无分页时 perPage 可省略 ``` - **注意事项**: - 序号列应放在每行的第一位置。 - 如果表格是静态的(无分页),简化公式为 `i + 1`。 - 确保`page`和`perPage`为整数,使用`parseInt`避免类型错误。 #### 3. **方法二:使用jQuery实现** jQuery简化了DOM操作,适合动态表格。引用[1]提供了原生jq的示例代码。 ```javascript // 假设: #myTable 是表格元素, data 是数据数组, page 和 perPage 用于分页 function addRowNumbersWithJQuery(data, page = 1, perPage = data.length) { $('#myTable tbody').empty(); // 清空表格 $.each(data, function(i, item) { // 计算序号: 公式与JavaScript相同 const seqValue = (parseInt(page) - 1) * parseInt(perPage) + (i + 1); // 直接参考引用[1] // 构建行: 使用字符串拼接或jQuery方法 const row = $('<tr>').append( $('<td>').text(seqValue), // 序号列 $('<td>').text(item.name), $('<td>').text(item.age) ); $('#myTable tbody').append(row); }); } // 使用示例 const data = [{name: 'Alice', age: 30}, {name: 'Bob', age: 25}]; addRowNumbersWithJQuery(data, 1, 10); ``` taller - **说明**: - 引用[1]的核心公式 `(parseInt(page)-parseInt(1)) * parseInt(per)+(i+1)` 被直接应用,确保分页时序号连续。 - 使用 `$.each` 循环处理数据,比原生JavaScript更简洁。 #### 4. **常见问题与优化** - **动态更新**:如果表格数据变化(如新增/删除行),重新调用函数刷新序号。 - **性能**:避免在循环中频繁操作DOM;使用文档片段(`document.createDocumentFragment()`)提升效率。 东山再起 - **样式与对齐**:为序号列添加CSS(如 `text-align: center; width: 50px;`)确保美观。 - **注意事项**:如果表格是服务端渲染,序号应在后端生成,以减轻前端负担。 通过以上方法,您可以为原生table轻松添加序号。如果涉及框架(如Vue),引用[2]提供了Element UI的自定义索引方案[^2],但原生实现更轻量。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值