【问题标题】:jQuery append two tds' in one trjQuery 在一个 tr 中附加两个 tds'
【发布时间】:2013-01-26 13:35:28
【问题描述】:

如何使用 jQuery 在单个 tr 中仅附加两个 tds' ..

我有一张桌子 .. 我想最大化每行有多少 tds .. 像这样的

if($("td").length) == 0){ // get the count of existing tds
 $("table").append("<tr>");
}
   $("table").append("<td>Something</td>");

if($("td").length) == 2){ // if it hit two tds' in this tr then close the tag
 $("table").append("</tr>");
} // this is not a valid example, just trying to deliver my point

这不是一个循环,它会在点击时附加,所以假设我点击了 5 次,我应该得到这个

<tr>
 <td>Someting</td>
 <td>Someting</td>
</tr>
<tr>
 <td>Someting</td>
 <td>Someting</td>
</tr>
<tr>
 <td>Someting</td>
</tr>

【问题讨论】:

  • 这是你所有的 JavaScript 代码吗?
  • 请更详细地解释您要执行的操作。 $("td").length) 给出页面中TD 的总数。不清楚你想要什么
  • 我已经提到了这个无效的例子,我想说我只希望append 在一个 tr 中添加两个 td,如果它达到两个然后创建一个新的 tr 标签并关闭当前标签已经有两个 tds

标签: javascript jquery html html-table


【解决方案1】:

让我们试试这个:

var max = 2
var tr = $("table tr:last");
if(!tr.length || tr.find("td").length >= max)
    $("table").append("<tr>");
$("table tr:last").append("<td>hi</td>");

http://jsfiddle.net/5yLrE/

【讨论】:

  • 应该缓存表选择器
  • 访问 DOM 的成本很高,因此只要您可以减少查找次数,就应该利用这一点。这对于小页面当然无关紧要,但是当您是页面气球时,修复它可能会很痛苦。
【解决方案2】:

如果$("td").length是偶数,则创建一个新行,如果不是,则追加到最后一行:

var $tds = $('table td');
var $target = $tds.last().parent();
if($tds.length % 2 === 0){
    $target = $('<tr />').appendTo('table > tbody');
}
$target.append("<td>Something</td>");

【讨论】:

    【解决方案3】:
    $('bla').click(function() {
      if ($('td').length % 2) === 0)
        $('table').append('<tr />');
      $('table:last').append($('<td>Something</td>'));
    });
    

    【讨论】:

      猜你喜欢
      • 2018-11-23
      • 2020-10-28
      • 2018-01-05
      • 2020-07-28
      • 2016-04-04
      • 1970-01-01
      • 2016-12-26
      • 2021-10-28
      • 2019-04-03
      相关资源
      最近更新 更多