在jquery中使用appendTo的正确方法

use*_*812 8 html css wordpress jquery

我在下面的代码中正确使用jquery appendTo方法吗?

我问,因为当我在jsfiddle中测试它时它似乎正确显示但是当我在我的本地服务器上使用相同的代码时(在FF,IE和Chrome中)它显示为带有细长的盒子:

在此输入图像描述

在此输入图像描述

在此输入图像描述

在此输入图像描述

我假设我做错了什么.谢谢.

HTML

<div class="ws-css-table"  >
  <div class="ws-css-table-tr">
        <div class="ws-css-table-td"></div>
        <div class="ws-css-table-td"></div>
    </div>
    <div class="ws-css-table-tr">
        <div class="ws-css-table-td"></div>
        <div class="ws-css-table-td"></div>
    </div>
    <div class="ws-css-table-tr">
        <div class="ws-css-table-td"></div>
        <div class="ws-css-table-td"></div>
    </div>    
</div>   

<br/>
<button id="css-icol">Col +</button><br/><br/>
Run Code Online (Sandbox Code Playgroud)

jQuery的

$('#css-icol').click(function(){
    $(".ws-css-table-td:last").clone().appendTo('.ws-css-table-tr');

  var tblArr = $('.ws-css-table > .ws-css-table-tr').map(function ()
   {
    return $(this).children().map(function ()
    {
        return $(this);
    });
});     

lastCol = $('.ws-css-table-tr:first > .ws-css-table-td').length;
 for (r=0; r<$('.ws-css-table-tr').length; r++)
    tblArr[r][lastCol-1].text('X');
 });    
Run Code Online (Sandbox Code Playgroud)

CSS

.ws-css-table {
    display: table;
}
.ws-css-table-tr { 
    display: table-row;     
}
.ws-css-table-td { 
    display: table-cell;
    border:1px solid #000;
    width: 15px;
    height:15px;
    text-align:center;
  vertical-align:middle;
}
Run Code Online (Sandbox Code Playgroud)

Pav*_*nar 2

您在这一行中有一个错误:

$(".ws-css-table-td:last").clone().appendTo('.ws-css-table-tr');
Run Code Online (Sandbox Code Playgroud)

您选择表中的最后一个单元格并将其克隆到每一行。当您想要复制列时,必须选择所有行中的最后一个单元格,然后必须迭代克隆的单元格。最后,这里的方法after更优雅......

$(".ws-css-table-td:last-child")
  .each(function(){
    var $this=$(this)
    $this.after($this.clone())
  })
Run Code Online (Sandbox Code Playgroud)

要创建空列,请使用:

$(".ws-css-table-td:last-child")
  .after("<div class='ws-css-table-td'/>")
Run Code Online (Sandbox Code Playgroud)