9

<col>jQueryで要素をアタッチしたい動的テーブルがあります。

私はこれを持っています:

var tds = jQuery("tr > td").length; // count how many tds
jQuery("#colgroup-compare > col").clone() // clone
    .appendTo('#colgroup-compare'); // and append

明らかにこれは1を追加するだけ<col>です、私は(n)の数字を追加したいと思います。どうすればいいですか?

私には長さがあり、クローン能力がありますが、どうすればそれを組み合わせることができますか?

4

2 に答える 2

7

ループあり:

var $col = $("#colgroup-compare > col");
for(var i = 0; i < n; i++){
    $col.clone().appendTo('#colgroup-compare');
}

ループで使用することはできません。これはjQuery("#colgroup-compare > col").clone().appendTo('#colgroup-compare');、0を超える反復でより多くの列が追加されるためです。

これは最適化できます:

var $colgroup = $('#colgroup-compare'); // this saves the colgroup collection to avoid recomputing it later
var $col = $colgroup.children("col"); // this makes the clonable col(s) from the col children of $colgroup
for (var i=n; i-->0;){ // n times (from n-1 to 0)
    $colgroup.append($col.clone()); // append a clone of the col(s)
}

編集:thあなたの最初の行でを数えるために、あなたはこれをするかもしれません:

var n=$("tr").first().children('th').length;

(これにより、複数の行を頼りにすることは避けられます)

デモンストレーション

于 2012-10-11T08:47:26.323 に答える