1

テーブル行をテーブル本体に追加したいと思います。これは、次のコードで実現できます。

var tr = $('<tr/>');
$('#myTable > tbody:last').append(tr);

ただし、一部のページには行が多すぎる可能性があるため、最後の行に動的にページ付けを作成します。

そのような場合、上記のコードを使用すると、新しいコードtrがページネーターの下に追加されますが、これは適切ではありません。

私のページネーターは、 このコードを変更できるかどうか疑問に思うtrIDを持っています<tr id="paginator_tr">

$('#myTable > tbody:last').append(tr);

最後のtrにあるかどうかを確認する条件を指定してid = "paginator_tr"、そのページネーター行の前に新しい行を追加します。それ以外の場合は、新しい行を最後の行として追加するだけです。

このような条件はjqueryで可能ですか?

4

3 に答える 3

1
var $tbody = $('#myTable > tbody').last(),
    $paginator_tr = $tbody.find('#paginator_tr');

if ($paginator_tr.length) {
    $paginator_tr.before(tr)
} else {
    $tbody.append(tr)
}

beforepaginator要素が存在する場合はmethodを使用でき、存在しない場合はtr要素を追加できます。

于 2012-12-15T14:23:13.600 に答える
0

別のアプローチがありますが、これはおそらくわずかに狂っています(それは機能しますが!):

var table = $(this),
    tr = $('<tr />'),
    td = $('<td />', {'text' : 'Newly-added cell.'}).appendTo(tr),
    method = table.find('#paginator_row').length ? ['insertBefore', '#paginator_row'] : ['appendTo', table.find('tbody').last()]
    tr[method[0]](method[1]);

JSフィドルデモ

事実上、method配列には2つの引数が含まれています。1つ目は使用するjQueryメソッドで、2つ目はtr要素が追加される場所を決定するためのそのメソッドのセレクターです。object.propertyNameこれは、ドット表記( )と角かっこ()の両方を使用してオブジェクトのプロパティにアクセスできるという事実に依存していますobject[propertyName]

参照:

于 2012-12-15T14:39:06.783 に答える
0

insertBefore()ページネーション行が常に存在すると仮定して使用します

tr.insertBefore( '#paginator_tr')

APIリファレンス:http ://api.jquery.com/insertBefore/

于 2012-12-15T14:27:57.350 に答える