gpt4 book ai didi

javascript - JQuery For every 循环使用 HTML 表数据

转载 作者:行者123 更新时间:2023-12-02 17:22:58 24 4
gpt4 key购买 nike

所以我有一个如下所示的 HTML 表格。

<div class="timecard">
<h3>tommytest</h3>

<table class="misc_items timecard_list" border="0" cellpadding="2" cellspacing="0" style="margin:0 auto;">
<tbody>
<tr class="display_row odd">
<td align="left" class="job_code" style="color:#000099">2400-Orchard</td>
<td align="right">9:47am</td>
<td align="right">5/19/2014</td>
<td align="right" class="hrs">01:00</td>
</tr>
<tr class="display_odd row">
<td align="left" class="job_code" style="color:#000099">1200-Duffy's</td>
<td align="right">12:37am</td>
<td align="right">5/17/2014</td>
<td align="right" class="hrs">2:00</td>
</tr>
</tbody>
</table>
</div>

<div class="timecard">
<h3>testtest</h3>

<table class="misc_items timecard_list" border="0" cellpadding="2" cellspacing="0" style="margin:0 auto;">
<tbody>
<tr class="display_row odd">
<td align="left" class="job_code" style="color:#000099">2400-Orchard</td>
<td align="right">9:47am</td>
<td align="right">5/19/2014</td>
<td align="right" class="hrs">01:00</td>
</tr>
<tr class="display_odd row">
<td align="left" class="job_code" style="color:#000099">1200-Duffy's</td>
<td align="right">12:37am</td>
<td align="right">5/17/2014</td>
<td align="right" class="hrs">2:00</td>
</tr>
</tbody>
</table>
</div>
<div id="total"></div>

然后我有一个 jquery 脚本,它获取“job_code”的总小时数并将每个小时数相加。但是,现在该脚本将“tommytest”和“testtest”作业代码组合在一起。我试图让它单独计算每个值并将其打印在每个受尊重的表格下方。任何想法都将不胜感激。

$(document).ready(function () {

var timeString = $(this).next('td.hrs').text();
var components = timeString.split(':');
var seconds = components[1] ? parseInt(components[1], 10) : 0;
var hrs = parseInt(components[0], 10) + seconds / 60;
total += hrs;

var temp = [];
$('.job_code').each(function (index, element) {
var text = $(this).text();
if (text != 'Out') {
temp.push(text);
}
});

// remove duplicates
var job_code = [];
$.each(temp, function (index, element) {
if ($.inArray(element, job_code) === -1) job_code.push(element);
});

var sum = {};
$.each(job_code, function (index, element) {
var total = 0;
$('.job_code:contains(' + element + ')').each(function (key, value) {
var timeString = $(this).siblings('td.hrs').text();
var components = timeString.split(':');
var seconds = components[1] ? parseInt(components[1], 10) : 0;
var hrs = parseInt(components[0], 10) + seconds / 60;
total += hrs;
sum[index] = {
'job_code': element,
'total': total
};
});
});

console.log(sum);

$.each(sum, function (index, element) {
$('#total').append('<p>Total for ' + element.job_code + ': ' + element.total + '</p>');
});

});

链接到 jsFiddle: http://jsfiddle.net/Ha546/2/

如果可能的话,我希望它是动态的,因为不仅仅是这两个表。提前感谢您的帮助。

最佳答案

当您查询 TD 标签时,$(this).next('td.hrs') 您没有足够具体地了解您想要来自哪个表的 TD 标签。如果您更具体,例如向表中添加 id,

<table id="tommytest">...</table>
<table id="testtest">...</table>

然后你可以像这样通过表查询:

var tdsFromTommytest = $(this).next('#tommytest td.hrs')
var tdsFromTesttest = $(this).next('#testtest td.hrs')

现在您已经有了两个单独的 TD 列表,您可以按照自己的方式进行处理。我认为这就是你问题的症结所在。但希望这足以帮助您了解如何更新每个表格下的单独总标记。

关于javascript - JQuery For every 循环使用 HTML 表数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23748619/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com