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

最简单的形式是这样...

$("#report tbody tr").each(function() {
    // do something here with $(this) which is the row 
});
于 2013-11-06T10:30:02.340 回答
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();

假设你有三个事件,它会返回

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

当然,您可以将return上面的行修改为您喜欢的任何属性,例如$(this).attr('id')

于 2013-11-06T10:45:54.590 回答