如何轻松地从表格中添加/删除单元格(移动现有单元格)

2023-12-12

我希望表格自动将单元格对齐为每行两个,这意味着如果添加/删除单元格,单元格将变为每行两个(如果单元格总数为奇数,则最后一行有一个)。

Example:

<table>

<tr>
<td>old1</td> <td>old2</td>
</tr>


<tr>
<td>old3</td> <td>old4</td>
</tr>

</table>

To this:

<table>

<tr>
<td>NEW</td> <td>old1</td>
</tr>


<tr>
<td>old2</td> <td>old3</td>
</tr>


<tr>
<td>old4</td>
</tr>

</table>

注意自动添加的row.


我将向您展示三种方法来实现您的需求,

  • css3 Using flex (modern仅限浏览器)
  • css Using inline-table(问题与单元高度但可以用作sort-of倒退)
  • jquery使用标准<table> (所有浏览器!)

使用CSS3的FLEX

.table{
  display: flex;
  flex-wrap: wrap;
}
.cell{
  width:50%;
  background:#ddd;
}
<div class="table">
  <div class="cell">NEW</div>
  <div class="cell">OLD1</div>
  <div class="cell">OLD2</div>
  <div class="cell">OLD3<br>new line</div>
  <div class="cell">OLD4</div>
</div>

Using inline-table(单元格高度问题)

display: table;对于父元素和
display: inline-table对于内部 DIV:

.table{
  display:table;
}
.cell{
  display:inline-table;
  width:50%;     /* With percentage you simulate "how-many-per-Row" */
  background:#ddd;
}
<div class="table">
  <div class="cell">NEW</div>
  <div class="cell">OLD1</div>
  <div class="cell">OLD2</div> <!-- Works but notice this cell height  -->
  <div class="cell">OLD3<br>new line</div> 
  <div class="cell">OLD4</div>
</div>

你可以使用inline-table作为旧版浏览器的后备方案 - 它不是完全相同的结果,但如果没有 JavaScript,它是您可以获得的最好结果。

Take a look in the specs about the display property: https://developer.mozilla.org/en-US/docs/Web/CSS/display


Using <table>, <tr> and <td>和 JavaScript (jQuery)

如果你想坚持优秀table您可以使用“一点”jQuery 元素。
在这种情况下,情况会更复杂一些(请参阅代码注释):

jQuery(function($){ // DOM is now ready

  var $table = $("table"); // Get your table
  var maxRowCells = 2;     // only 2-per-Row
  var counter = 0;         // just a dummy counter

  function prependNewCell(){

    var $newCell = $("<td/>", {html: "NEW"+(++counter)});

    // Is the last row full?
    if($table.find("tr:last td").length == maxRowCells){
      // If true, append a new TR to TABLE to shift TD's to
      $table.append( $("<tr/>") ); 
    }


    // Shift all last TD's to the next row:
    $table.find("tr:not(:last)").each(function(){
      var $tdLast = $(this).find("td").last();
      $(this).next("tr").prepend( $tdLast );
    });

    // Finally. Prepend the new TD element to the first TR
    $table.find("tr").first().prepend( $newCell );

  }

  $("button").on("click", prependNewCell);

});
td{
  width:50%;
  background:#ddd;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button>ADD NEW CELL ON TOP</button>

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

如何轻松地从表格中添加/删除单元格(移动现有单元格) 的相关文章

  • 如何在 PHPStorm 中禁用 html 标签完成

    当我在 HTML 其他上下文中并输入时foobar然后按Tab键它会自动变成
  • 我正在尝试向我的 vue.js 项目添加背景图像

    我想添加覆盖整个页面的背景图像 然而现在看起来是这样的 我希望它跨越整个网页 在 vue js 中这将如何完成 我还想要一个动画工具栏 以便当页面不滚动时工具栏是透明的并呈现背景图像的外观 当它滚动时 工具栏将具有当前的蓝色 这是我的小提琴
  • 如何将表格中的td高度设置为0px?

    我有一个包含几行的 HTML 表 这是动态构建的 全部 tr 有一个 td inside If one td 里面没有 HTML 内容 我希望它是不可见的 如何才能做到这一点 并不是说里面的 HTML 是动态渲染的 我不想使用display
  • 根据复选框和数据元素隐藏/显示表格行

    我想隐藏表中的行 因为我选中了复选框并且该数据元素在表中不正确 另一个实验 我还可以使用数据元素进行排序并按下拉列表排序 查看 tr 标签 价格 名称 评级 吗 div class filter list div
  • 如何防止 CFDocument 中的内容中间发生分页?

    我使用 cfdocument 标签从 html css 动态生成 PDF 文件 有些内容块我不想跨越多个页面 经过一番搜索后 我发现根据文档支持 page break inside 样式 然而 在我的测试中 声明 page break in
  • 有没有办法禁用网站上表单的自动填写? [复制]

    这个问题在这里已经有答案了 我最近才学会使用创建网站HTML and PHP 我创建了一个网站 其中有一个测验 要求人们随机翻译单词 用户将他们的答案输入到表格中 网站评估答案是否正确 现在 当一个问题在一个会话中被问两次时 就会出现自动填
  • 如何在Eclipse中集成CSS预处理? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想在 Eclipse 中编辑 SCSS 文件 最好使用语法突出显示 scss files 我发现这些资
  • 如何向我的网站添加 Google 搜索框?

    我正在尝试将 Google 搜索框添加到我自己的网站 我希望它搜索谷歌本身 而不是我的网站 我曾经有一些代码可以工作 但现在不再工作
  • 如何删除flexbox中所有换行行的左右边距(没有nth-child或js)

    我正在寻找一种好方法来删除每行中每个第一个和最后一个项目的左右边距 而不使用 nth child 或 JavaScript 如果这是不可能的 那么我想下一个最好的方法是在主弹性盒元素上设置负左 右边距 但我不太确定使用弹性盒来做到这一点的最
  • Twitter bootstrap:居中缩略图

    我有一个缩略图列表 它们有固定的尺寸 我希望连续缩略图的数量随着窗口的宽度而变化 使用 Twitter Bootstrap 这很容易 http jsfiddle net charlesbourasseau 5WvAL http jsfidd
  • 如何在 font Awesome 图标链接下方添加添加文本?

    我正在尝试在我的 Blogger 模板中的 font awesome Icons 下添加一些文本 这是我想要实现的目标的图像 我想要实现的外观图片 https i stack imgur com BVYlh png 但到目前为止我已经做到了
  • GWT - 如何组织项目以拥有多个网页以及它们之间的导航

    我是 GET 的新手 顺便说一句 它给我留下了深刻的印象 并且发现它对于像我这样熟悉 C NET 桌面技术并愿意编写 Web 应用程序的人来说非常有吸引力 我根据 GWT Eclipse 向导生成的示例启动了自己的项目 该项目生成带有面板的
  • 如何仅在 css/html 中强制在单词之间换行?

    我只有一段普通的文本 p 标签内的 p div 标签 但只有 Firefox 可以正确显示 Firefox 打破了单词之间的界限 所有其他浏览器都会在单词中间断行 这使得阅读变得困难 这是我的意思的一个例子 火狐浏览器 工作中 This w
  • Chromium 嵌入式框架支持 HTML5 音频吗?

    我一直在玩 CefSharp 但似乎无法播放任何音频 我可以让音频控件出现 但它们保持冻结状态 这些是我使用的版本 Chromium 21 0 1180 0 CEF r728 CefSharp 0 12 4596 50 我先尝试了 mp3
  • 如何适应特定子元素的宽度?

    problem 我正在尝试创建一个技能表 我无法问下一个问题为什么 所以我创建了一个新帐户并询问 当前状态 我想将元素的宽度与 meter 也就是说 如何设定区块的标准 meter 子元素 在上面的 gif 中 img meter 我想要保
  • Firefox Placeholder Before CSS 选择器不起作用

    我使用的是最新的firefox 30 0 我正在尝试在必填字段的占位符之前插入红色字体真棒星号 我在 Chrome 中工作没问题 但我在 FF 和 上遇到问题 这是一个说明我的问题的代码笔 http codepen io anon pen
  • 当百分比填充定义元素高度时忽略 max-height

    The max height当内部填充大于最大高度值时 属性值似乎被忽略 例如 在元素上设置此类会导致最大高度被忽略 max height ignored height 0 or auto makes no difference max h
  • Jquery 在 DIV 中进行多重加载

    这是我的代码 right load textes html nicolas right load textes html antoine 问题是内容divantoine覆盖了右边div nicolas加载的内容div div right l
  • HTML 输入 - 名称与 ID [重复]

    这个问题在这里已经有答案了 使用 HTML 时
  • 从输入类型编号获取无效值

    我正在使用输入类型数字 当它无效时 我如何从中获取值 例如 使用类型编号并仅打印 e 这本身是无效的 我正在使用 React 但我认为这个问题非常普遍 onChange event console log event target valu

随机推荐