1

行数を数えたいだけなのですが、

   <button id="add">Add row</button>
<table>
    <tbody id="mytbody">
    </tbody>
</table>
Number of rows: <span id="counter"></span>

Javascript:

$(function() {
    $('#add').bind('click', function() {
        $('#mytbody').after('<tr><td>'+ new Date() +'</td></tr>');
        var count = $('#mytbody').children().length;
        $('#counter').html(count);
    });
});

私はこのjQueryを見つけました:テーブル内の行数を数えます

これは機能しませんhttp://jsfiddle.net/H8sBr/

私はそれがうまくいかない。ヘルプ?

4

7 に答える 7

12

スクリプトが間違っています。次を使用してappend()ください。

$(function() {
    $('#add').bind('click', function() {
        $('#mytbody').append('<tr><td>'+ new Date() +'</td></tr>');
        var count = $('#mytbody').children('tr').length;
        $('#counter').html(count);
    });
});

デモ: http: //jsfiddle.net/praveenscience/H8sBr/115/

于 2013-02-26T17:45:47.013 に答える
8

純粋なjsを使用してtr カウントを取得するには;

var count = document.getElementById("mytbody").getElementsByTagName("tr").length;

JS フィドルのデモ

于 2013-02-26T17:47:20.803 に答える
1

after() を使用しているため、コードは #mytbody の後に tr を追加しています。

<button id="add">Add row</button>
<table>
    <tbody id="mytbody">
    </tbody>
    <tr>Tue Feb 26 2013 23:41:09 GMT+0530 (India Standard Time)</tr>
    <tr>Tue Feb 26 2013 23:41:09 GMT+0530 (India Standard Time)</tr>   
</table>

したがって、コードを実行するとき

$('#mytbody').children().length;

常に 0 を返します。

after() の代わりに append() http://forum.jquery.com/topic/after-vs-appendを使用してみてください

http://jsfiddle.net/H8sBr/118/

于 2013-02-26T17:55:06.497 に答える
0

.append()新しいノードではなく、テーブル本体の<tr>にノードを挿入します。使用する

$('#mytbody').append('<tr><td>'+ new Date() +'</td></tr>');

代わりは。

于 2013-02-26T17:45:55.207 に答える
0

これを試して:

    $('#add').click(function() {
        $('#mytbody').append('<tr><td>'+ new Date() +'</td></tr>');
        var count = $('#mytbody > TR').length;
        $('#counter').html(count);
    });
于 2013-02-26T17:46:19.213 に答える
0

このjsFiddleの例を試してください。

$('#add').bind('click', function () {
    $('#mytbody').append('<tr><td>' + new Date() + '</td></tr>');
    var count = $('#mytbody tr').length;
    $('#counter').html(count);
});

簡単に使用できますが、の代わりに$('#mytbody tr').length使用する必要があります。appendafter

于 2013-02-26T17:46:50.107 に答える
0

JS コードを修正しました。http://jsfiddle.net/HwEA7/

$(function() {
    $('#add').bind('click', function() {
        $('#mytbody').append('<tr><td>'+ new Date() +'</td></tr>');
        var count = $('#mytbody tr').length;
        $('#counter').html(count);
    });
});
  1. append後に行を追加するために使用します<tbody>
  2. 行数をカウントする$('#mytbody tr').length
于 2013-02-26T17:57:48.033 に答える