如何为表的第一行设置不同的循环动作
jQuery: How to set different action for each loop only for first row of table
我是jQuery新手,希望有人能帮助我。
我有一个大的、动态创建的表,它包含3列,一列用于需要减去的金额,一列用于需要添加的金额,另一列用于每行的总和。
到目前为止,我有下面的工作按预期的
然而,在第一行,检查前一行的和是没有意义的,因为没有前一行。
只有在这种情况下,它应该采用出现在头(class = "calcStart"
)的第一行中的初始余额,而不是前一行的总和。
谁能告诉我怎么才能做到这一点?
此外,如果有什么可以写得更好/更短的代码,请让我知道。
My JS:
var calcMinus, calcPlus;
var calcSum = 0;
$(document).on('keyup', '.calcMinus, .calcPlus', function(){
$(this).closest('table tbody').find('td.calcSum').each(function(){
calcMinus = Number( $(this).closest('tr').find('td.calcMinus').find('div').text() );
calcPlus = Number( $(this).closest('tr').find('td.calcPlus').find('div').text() );
if((calcMinus == '') && (calcPlus == '')){
$(this).text('0');
}else{
calcSum += Number( $(this).closest('tr').prev('tr').find('td.calcSum').text() );
calcSum -= calcMinus;
calcSum += calcPlus;
$(this).text(calcSum);
}
calcSum = 0;
});
});
提前感谢,迈克
使用以下代码…使用:gt()
选择器
: gt (0)
选择匹配目录中索引大于索引的所有元素集。
$(this).closest('table tbody').find('td.calcSum:gt(0)').each(function(){
如果你想先跳过,那么使用下面的代码
$(this).closest('table tbody').find('th:gt(0) td.calcSum').each(function(){
与OP在这里讨论的是避免第一行
的另一个选项通过索引参数
传递每个函数的索引$(this).closest('table tbody').find('td.calcSum').each(function(index){
if (index === 0){}else{} });
相关文章:
- 设置AngularJS控制器属性不能是使用Coffeescript的最后一行
- 将 IDCell 的值设置为 ((上一行 IDCell 的值)+1)
- JavaScript在一行中设置了命名函数的原型
- 如何在javascript中为变量设置一行setter
- 使用setAttribute将id设置为元素最后一行的td
- 在ExtJS中,如何设置Ext.grid.EditorGridPanel中一行的背景色
- Titanium-JavaScript:如果所选数组中存在某一行的值,如何设置该行的复选标记
- 将具有 2 个要求的 Javascript if 语句设置为一行
- 是否可以使用&&并在同一行设置一个变量
- ExtJS可以't在一行上设置值
- ng重复为每一行设置一个随机颜色
- 如何设置类=“;“必需”;jquery查找一行下的无线电,而不将其附加到第一个无线电
- 在JQuery Mobile中,在同一行设置标签格式和切换开关
- ASP.net Javascript为gridview的每一行设置倒计时时钟计时器
- 如何在Angular中使用ng-click函数设置最后一行输入的焦点
- 使用javascript XML XSLT在最后一行设置单击事件
- 设置多个变量在一行有效的javascript?(var x = y = & # 39;价值# 39;;)
- 如何设置同一行中的另一个字段值
- Jqgrid设置一行的背景
- 我将如何动态地设置一行要滑动的元素的动画