我有以下代码:
var sum = 0;
$("#scLD > tbody > tr > td:nth-child(2)").each(function () {
var x = $(this);
if (x.parent().hasClass(/^onHandTdmm([0-9]+)$/)) {
var y = parseFloat(x.text(), 10) || 0;
sum += y;
}
if (x.parent().hasClass("onHandGrand")) {
x.html(sum);
sum = 0;
}
})
我正在尝试搜索一列,并且是否有任何单元格父级(行)包含某个类名称,后跟任何单个数字来添加它。因此,基本上,如果父级包含 onHandTdmm 类,后跟任何数字(例如 onHandTdmm1)。我想出的正则表达式 (/^onHandTdmm([0-9]+)$/) 在我的函数中只返回 0。
最佳答案
与其循环遍历所有单元格并匹配具有该类的父级,为什么不只查找具有该类的行,然后根据需要操作该单元格?
对于正则表达式部分,您需要使用 .test
,因为 jQuery 选择器本身并不处理正则表达式。
工作中的 JSFiddle: https://jsfiddle.net/j4d3zgqt/4/
var sum = 0;
$("#scLD > tbody > tr").each(function() {
var $row = $(this);
var $cell = $(this).find('td:nth-child(2)');
if (/^onHandTdmm([0-9]+)$/.test($row.attr("class"))) {
var y = parseFloat($cell.text(), 10) || 0;
sum += y;
}
if ($row.hasClass("onHandGrand")) {
$cell.html(sum);
sum = 0;
}
});
关于javascript - 将类与表行匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41151273/