JQuery 在该位置插入表格行

2024-01-08

我一直在研究一种能够向 html 表插入行的解决方案。这非常棘手。我发现了一些有用的东西,但仅适用于第一个“插入”。我不知道我做错了什么。

我有一个包含 3 列的基本表格,每个表格都有一个按钮,允许在两行之间插入一行。我在这个网站上搜索了一个解决方案,并得到了一个有效的 jquery 解决方案,即当我按下按钮时,它会在我想要的位置添加行。但是,当我在插入最后一行之后添加另一行时,该行会向后插入 1 个位置,下次我按下按钮时,它会向后插入 2 行等。我无法弄清楚我做错了什么,任何人都知道它为什么这样做这?

更好的是有更好的方法来做到这一点吗?即在表的任意位置添加一行?

jQuery 代码;

<script>
$(document).ready(function(){
    $(".addRow").click(function(event){

    //get the button id to get the row
    var $id=this.id;
    var $totrecords;
    var $newrow;
    var $totalrowsadded;
    //get id of clicked button
    $id=$id.replace("add_", "");

    $totrecords=document.getElementById('totalrecords').value;
    $totrecords++;

    //store number of rows added
    $totalrowsadded=document.getElementById('totalrowsadded').value;
    $totalrowsadded++;
    document.getElementById('totalrowsadded').value=$totalrowsadded;

    //update record count
    document.getElementById('totalrecords').value=$totrecords;

    var $html='<tr class="newrow"><td>'+$totrecords+'<button type="button" class="addRow" id="add_'+$totrecords+'">add</button></td><td><label for="ProductHeight'+$totrecords+'">height</label><input name="data[Product][height'+$totrecords+']" type="text" value="0" id="ProductHeight'+$totrecords+'"/></td><td><label for="ProductWidth'+$totrecords+'">width</label><input name="data[Product][width'+$totrecords+']" type="text" value="0" id="ProductWidth'+$totrecords+'"/></td><td><label for="ProductPrice'+$totrecords+'">List Price</label><input name="data[Product][price'+$totrecords+']" type="text" id="ProductPrice'+$totrecords+'"/></td></tr>';


    $newrow=parseInt($id)+1;
    alert('new row insert at '+$newrow);

    $('#productstable > tbody> tr:nth-child(' + $newrow + ')').after($html);    


});
});

</script>

我的桌子是这样的;

<table id="productstable">
    <tr>
        <th>Insert</th>
        <th>Height</th>
        <th>Width</th>
        <th>List price</th>
    </tr>

    <tbody>
    <tr id="0">
        <td>0 :<button type="button" class="addRow" id="add_0">add</button></td>
        <td><label for="ProductHeight0">height</label><input name="data[Product][height0]" type="text" value="115" id="ProductHeight0"/></td>
        <td><label for="ProductWidth0">width</label><input name="data[Product][width0]" type="text" value="595" id="ProductWidth0"/></td>
        <td><label for="ProductPrice0">List Price</label><input name="data[Product][price0]" type="text" id="ProductPrice0"/></td>
    </tr>

    <tr id="1">
        <td>1 :<button type="button" class="addRow" id="add_1">add</button></td>
        <td><label for="ProductHeight1">height</label><input name="data[Product][height1]" type="text" value="140" id="ProductHeight1"/></td>
        <td><label for="ProductWidth1">width</label><input name="data[Product][width1]" type="text" value="295" id="ProductWidth1"/></td>
        <td><label for="ProductPrice1">List Price</label><input name="data[Product][price1]" type="text" id="ProductPrice1"/></td>
    </tr>

    <tr id="2">
        <td>2 :<button type="button" class="addRow" id="add_2">add</button></td>
        <td><label for="ProductHeight2">height</label><input name="data[Product][height2]" type="text" value="140" id="ProductHeight2"/></td>
        <td><label for="ProductWidth2">width</label><input name="data[Product][width2]" type="text" value="395" id="ProductWidth2"/></td>
        <td><label for="ProductPrice2">List Price</label><input name="data[Product][price2]" type="text" id="ProductPrice2"/></td>
    </tr>

    <tr id="3">
        <td>3 :<button type="button" class="addRow" id="add_3">add</button></td>
        <td><label for="ProductHeight3">height</label><input name="data[Product][height3]" type="text" value="140" id="ProductHeight3"/></td>
        <td><label for="ProductWidth3">width</label><input name="data[Product][width3]" type="text" value="495" id="ProductWidth3"/></td>
        <td><label for="ProductPrice3">List Price</label><input name="data[Product][price3]" type="text" id="ProductPrice3"/></td>
    </tr>

    </tbody>
</table>

你想要 JQueryappend功能:

$('#productstable TBODY').append($html); 

要在包含单击的按钮的行之后添加一行,请使用以下命令:

$(this).closest('TR').after($html);

The closest函数沿着树向上查找最近的 TR,然后after会把它放在它后面。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JQuery 在该位置插入表格行 的相关文章

随机推荐

  • 无法正确 memcpy 一个 char 数组来构造

    所以我有一个称为数据包的构造 struct Packet unsigned int packet type wchar t packet length 128 wchar t file name 256 wchar t template n
  • Scala 中 NonFatal 和 Exception 的区别

    In 本文 https tersesystems com 2012 12 27 error handling in scala 据说 如果你想捕捉通常发生的 一切 那么使用 非致命 import scala util control Non
  • Android 上的 XML SOAP 签名

    我需要在 Android 应用程序中签署 XML SOAP 请求 我做了一些研究 似乎没有框架可以在 Android 上做到这一点 有人设法做到这一点吗 经过几周的尝试和测试 我终于成功地在 Android 上进行了手动 XML 签名 这是
  • Android数据绑定view.onTouchListener

    Android在数据绑定中有
  • 如何解决Oracle weblogic服务器中的SplitsrcTargetPreparation异常?

    I am trying to run a simple Restful web service example on oracle weblogic server but i am getting this issue while run
  • 我如何打开 zip 文件中的文件而不用 PHP 解压它

    我只是想制作一个可以打开 zip 存档中的文件的系统 就像我有 archive zip 在这个文件中 text 我想创建一个类来标记此页面 zip php archiver archive zip file file text 我希望此页面
  • 如何可视化或绘制多维张量?

    我想知道这里是否有人尝试过在 numpy 中可视化多维张量 如果是这样 您能与我分享一下我该怎么做吗 我正在考虑将其简化为二维可视化 我已经包含了一些示例输出 它的结构很奇怪 有省略号 并且有一个 4D 张量布局 内容在这里 样本数据 9
  • 使用 C,尽可能干净地将动态分配的 int 数组转换为逗号分隔的字符串

    我在 C 方面的经验比在高级语言方面的经验要少得多 在思科 我们使用 C 我有时会遇到一些在 Java 或 Python 中很容易做到 但在 C 中很难做到的事情 现在就是这样的时候之一 我有一个动态分配的无符号整数数组 我需要将其转换为逗
  • 蒙皮网格着色器的统一顶点位移(动画轮廓,Three.js)

    我想我已经解决了在 Three js 中渲染网格上的边框 轮廓的实现 这是许多游戏用于突出显示对象 角色的技术 Diablo 1 and 3 for example 这是详细信息 https stackoverflow com questi
  • 您不知道已安装发电机

    我刚刚安装了 Yeoman 和一些发电机 然而 由于 usr lib文件夹受到保护 我选择更改 NPM 安装其软件包的位置的前缀 现在 一切都在安装 node 我也改变了我的 PATH并添加了 node bin 但是 当我执行yo
  • 更改 JTextArea 中特定行的字体

    您好 我正在开发一个聊天应用程序 我希望用户可以更改他 她正在编写的字体 有一个setFont 函数 但它更改了 TextArea 中所有字符串的字体 所以我只想更改我的字体 如果您能帮助我 我将不胜感激 那么我想我必须学一点 HTML 我
  • 以编程方式创建Windows用户c#.net(使用PricinpalUser / CreateProfile)

    简而言之 我想做的是创建一个能够登录的新用户 我从各种来源提取了代码 并尝试简化它 然而 我遇到了一些绊脚石 当我打电话时UserPrincipal Save 它给了我一个错误 在缓存中找不到目录属性 异常类型 COMExceptioncr
  • 在 Visual Studio 设计器中隐藏 WPF 元素

    我有一个 WPF 表单 基本上如下所示
  • 如何设置 Android 操作栏上菜单项的样式

    关于操作栏样式的问题有很多 但我发现的问题要么与选项卡样式有关 要么有不适合我的答案 问题其实很简单 我希望能够更改操作栏中菜单项的文本样式 甚至只是颜色 我读过这个 还有这个问题 Android Honeycomb 中的操作栏样式 htt
  • 如何使用机器人框架和 selenium 读取 Web 控制台输出?

    我正在尝试读取网页的控制台输出 特别是我需要使用 RF 和 Selenium 进行 POST GET PUT ajax 调用 我在网上找到了一些帮助 但似乎无法使其发挥作用 我的Python脚本是 from selenium webdriv
  • 如何动态设置 EditText 高度

    我想简单地将 EditText 组件的高度设置为用户屏幕高度的 50 我正在从 xml 文件 main xml 创建初始布局 该文件加载到 Activity 的 onCreate Bundle 中 从 xml 配置中 我了解如何将 Edit
  • IronPython Web 框架

    Python 似乎有很多优秀的 Web 框架 有人在 IronPython 中使用过这些 Pylons Web2Py Django 吗 Django 已在 IronPython 上运行 http unbracketed org 2008 m
  • 依赖类型:依赖对类型与不相交联合有何相似之处?

    我一直在研究依赖类型 我了解以下内容 Why 通用量化 https en wikipedia org wiki Universal quantification被表示为依赖函数类型 x A B x means 对全部x类型的A有一个类型的值
  • C# Windows 窗体用户控件控件设计器支持

    我正在寻找的是对用户控件内的控件的相同类型的设计器支持 即 调整用户控件内的文本框大小 移动标签将用户控件放置到表单上之后 我能做的事 创建一个用户控件 使用设计器向其添加控件 创建一个新的窗口窗体应用程序 将用户控件添加到工具箱 将控件拖
  • JQuery 在该位置插入表格行

    我一直在研究一种能够向 html 表插入行的解决方案 这非常棘手 我发现了一些有用的东西 但仅适用于第一个 插入 我不知道我做错了什么 我有一个包含 3 列的基本表格 每个表格都有一个按钮 允许在两行之间插入一行 我在这个网站上搜索了一个解