2

这似乎是一个奇怪的问题,我不确定这是否可能。

我在 wordpress 中创建了一个 HTML 表格,并构建了一个 PHP 循环以表格格式输出帖子数据。

我正在使用这个jQuery table sorted plugin使它成为一个可排序的表。

但我的问题是,是否可以使用 jQuery 将表格列中的所有数值相加<th>Hours</th>并输出结果?

如果需要将一个类添加到<td><?php echo get_post_meta($post->ID, 'Labour Time Hours', true); ?></td>单元格中,那很酷,它不会影响表格排序器。

然后我想在我的表格页脚单元格中输出结果。

这可能吗?我似乎在谷歌上找不到任何东西,但我可能在搜索错误的术语。

谢谢

我的 WORDPRESS 循环生成表内容

<?php 

        $data = new WP_Query(array(

        'post_type'         => 'job',
        'order'             => 'ASC',
        'posts_per_page'    => -1,
        'orderby'           => 'date'

)); ?>

<?php if ($data->have_posts()) : ?>

<table id="myTable" class="tablesorter"> 

    <thead> 

        <tr> 

            <th>Date</th> 
            <th>Job Title</th> 
            <th>Category</th> 
            <th>Hours</th> 

        </tr> 

    </thead> 

    <tbody> 

        <?php while ($data->have_posts()) : $data->the_post(); ?>

        <tr> 

            <td><?php the_time('Y/m/d'); ?></td> 
            <td><a href="<?php the_permalink() ?>" title="View Job" ><?php the_title(); ?></a></td> 
            <td><?php the_category(', ') ?></td> 
            <td><?php echo get_post_meta($post->ID, 'Labour Time Hours', true); ?></td> 

        </tr> 

        <?php endwhile; ?>

    </tbody>

    <tfoot>

        <tr>

            <td></td>
            <td></td>
            <td></td>
            <td><!-- Total to go here --></td>

        </tr>

    </tfoot>

</table>

<?php unset($data); endif; wp_reset_query(); ?>
4

4 回答 4

2

一个简单的方法是为要添加的元素分配一个类。

所以你会做这样的事情:

<td class="add">5</td>
<td class="add">8</td>
<td id="Total"></td>

然后,如果您绝对肯定这些值将始终是整数(或浮点数),您可以这样做

function adding() {
    var total = 0;
    $(".add").each(function(index, element) {
        total += parseInt($(element).text());
    });
    $("#Total").text(total);
}
于 2012-06-12T18:03:39.900 回答
1

你可以用一些相当简单的 jQuery 来做到这一点:

var $table = $('#myTable'),
    $tr = $table.find('tbody tr'),
    totalHours = 0;

$tr.each(function(i, el){
    totalHours += parseInt($(this).find('td:last').html() || 0, 10);
});

$table.find('tfoot td:last').html(totalHours);

看演示

于 2012-06-12T18:03:50.813 回答
0

最好在服务器 imo 上添加,但您可以这样做:

var total = 0;

 $("td.whateverClass").each(function () 
    { 
        total += $(this).text();

    }
于 2012-06-12T18:01:29.570 回答
0

将类添加hours到您各自的表格单元格中<td class='hours></td>'

然后你可以像这样 jQuery 它。

var sum = 0;

然后

$('tbody td.hours').each(function(index, td)) { sum += parseInt(td.html()); });

最后

$('tfoot td.hours').html(sum);

于 2012-06-12T18:01:56.087 回答