2011-11-09 33 views
1

我想要做的是把表中的最後一個colomn放在一個新的表中。我得到了這個工作問題是我希望這個工作多個表具有相同的類名。現在它只需要第一張表格並重復它們。我有一個爲什麼的想法,但我不知道如何將每個表作爲一個單獨的元素,即使它們都具有相同的類名稱。隨着jQuery的移動一個表列到一個新表

jQuery的

function fixLastColumn() {     
// makes new table 
    var nt = $('<table class="ft_fixedTable"></table>'); 

    $(".ft_FixedTable tr").each(function(i) { 
     nt.append('<tr class="ft_fixTR"><td class="ft_fixTD">'+$(this).children('td:last').html()+'</td></tr>') 
    }) 
    nt.appendTo('.fixedDiv'); 

    // remove last column 
    $('.ft_FixedTable tr').each(function(i) { 
    $(this).children('td:last').remove(); 
    }); 
    } 

$(document).ready(function() { 
    fixLastColumn(); 
}); 

HTML

<table class="ft_FixedTable"> 
    <thead> 
     <tr> 
     <td>Title 1</td> 
     <td class="ft_fixedCol">fixed one</td></tr> 
    </thead> 
    <tr> 
    <td>Content Content Content Content Content</td> 
    <td>Fixed content </td> 
    </tr> 
</table> 

<div class="fixedDiv"></div> 

回答

2

您可以使用JavaScript來搬桌子細胞本身,而不是僅僅將內容複製:

function fixLastColumn() { 
    // makes new table 
    var nt = $('<table id="ft_fixedTable_2" />'); 

    $(".ft_FixedTable tr").each(function(i) { 
     $('<tr class="ft_fixTR"/>') 
      .append($(this).children('td:last')) 
      .appendTo(nt); 
    }) 
    nt.appendTo('.fixedDiv'); 
} 

$(document).ready(function() { 
    fixLastColumn(); 
}); 

作爲一個(小,但潛在的顯著)優化,但是,你應該使用的ID,而不是類,以確定您的表和申報單:

http://jsfiddle.net/mblase75/TVpHp/

+0

謝謝你正是我想要做的:)我對此很新,所以我仍然試圖找出它是什麼,我在做什麼,以及這是如何作品。我想我明白了。 – mustafa

+0

很高興我能幫到你。請不要忘記接受你最喜歡的答案:http://meta.stackexchange.com/q/5234/171394 – Blazemonger

1

它可能是與您要選擇的ft_FixedTable但班級的分配新表ft_fixedTable的事實。請注意較低的殼體f


這是你要去的嗎? http://jsfiddle.net/hunter/NzbHs/

+0

不完全,但感謝您的回覆。我有點新手在這個:( – mustafa

1
$(".ft_FixedTable").each(function() { 
    var $last = $("td:last", this).remove(); 

    $('<table class="ft_fixedTable"></table>') 
    .append('<tr class="ft_fixTR"><td class="ft_fixTD">' 
      + $last.html() 
      + '</td></tr>' 
) 
    .appendTo('.fixedDiv'); 
}); 
1

如果我正確理解你的問題,T他.each()方法只適用於選擇器的第一項,在這種情況下,第一個表與ft_FixedTable類。你可以嘗試做這種方式:

$(document).ready(function() { 
    $('.ft_FixedTable').each(function() { 
     var index = $('tr td:last', this).index(); 
     $('tr td', this).eq(index).remove(); 
    }); 
}); 

這將找到的最後一列索引和td從目前表內的所有行刪除。

+0

我想要做的是選擇第一個表(表A),然後刪除最後一個列,添加它到一個新表(表B),然後轉到下一個(表A)等。雖然我的蹩腳的技能,讓我花了一天試圖找出一種方法來做到這一點:( – mustafa

相關問題