0

次のように生成されたテーブルがあります。

<div class="row">
<div class="col-md-12">
    <div id="calendar"></div>
    <table id="report" class="table">
        <thead>
            <tr>
                <th>Event</th>
                <th>Start Date</th>
                <th>End Date</th>
                <th>Status</th>
            </tr>
        </thead>
        <tbody />
    </table>
</div>

そしてJavaScriptを使用して入力されます:

var tableDetails = [
    data.title,
    $.fullCalendar.formatDate(startDate, "dd MMMM yyyy"),
    $.fullCalendar.formatDate(endDate, "dd MMMM yyyy"),
    data.published ? "Published" : "Not Published"
];

var row = $("<tr></tr>");

for (var i = 0; i < tableDetails.length; i++) {
    row.append($("<td></td>").text(tableDetails[i]));
}

$("table#report > tbody:last").append(row);

コントローラーに渡すすべてのイベントのリストを取得できるように、テーブルの行を介して foreach ループを実行する方法はありますか? イベントを一意に識別する EventIds をテーブルに追加するだけでよいため、文字列のリスト/配列を取得するだけで十分です。

4

3 に答える 3

1

各行とセルを反復処理する単純な jQuery : (TH セルは含まれません)

    $('#report tr').each(function() {
        //do something to row...
        $(this).find('td').each(function() {
            //do something to cell...
        });
    });
于 2013-11-06T10:32:05.357 に答える
1

コントローラーに渡すすべてのイベントのリストを取得できるように、テーブルの行を介して foreach ループを実行する方法はありますか?

各オブジェクトの特定のプロパティ (イベントの名前など) の配列だけが必要な場合は、これで十分ですそうでない場合、提供される他の回答は、各行/セルを反復処理する正しい方法です。

var list = $('#report > tbody > tr').map(function () {
    return $(this).find('td:eq(0)').text();
}).get();

3 つのイベントがあるとします。

list == ["event 1 name", "event 2 name", "event 3 name"];

もちろん、return上記の行を好きなプロパティに変更できます。$(this).attr('id')

于 2013-11-06T10:45:54.590 に答える
1

最も単純な形式は次のようになります...

$("#report tbody tr").each(function() {
    // do something here with $(this) which is the row 
});
于 2013-11-06T10:30:02.340 に答える