我有一个充满数据的html表,第一列包含一个输入复选框和一个名称。当要满足两个条件时,我要选中此复选框:
名称是“完成”
发送的日期与“ m / d / yyyy”(即“ 9/20/2016”)中传递的字符串匹配(无前导零)
我已经可以使用getElementByTagName(“ input”)进行第一个操作,并检查它是否为复选框并且名称为Complete
function checkAllComplete()
{
var allRows = document.getElementsByTagName("input");
for (var i=0; i < allRows.length; i++) {
if (allRows[i].type == "checkbox" && allRows[i].name == "complete")
{
allRows[i].checked = true;
}
}
}
单元格中的日期为“ 9/20/2016 4:02:03 PM”。我也想使用正则表达式将其放入m / d / yyyy:
var myRe = new RegExp("^([1-9]|1[012])\/([1-9]|[12][0-9]|3[01])\/(19|20)[0-9]{2}", "g");
但是我在获取相应的td及其文本时遇到了麻烦。我尝试了getElementsByClassName,但是由于还有其他输入项,因此计数不正确。我尝试为复选框使用类名,但随后无法对其进行检查。
我已经为所有tds分配了一个类,带有复选框的第一列是“ actionClass”,而带有日期字符串的那个是“ dateSentClass”
我愿意使用javascript或jquery作为解决方案。
编辑:这是带有示例表结构https://jsfiddle.net/trueimage/4u87euz5/2/的小提琴
最佳答案
要获取复选框,可以使用:
document.querySelectorAll('input[type=checkbox]');
要么:
jQuery('input[type=checkbox]');
您可以使用以下命令获取tds的数组:
document.querySelectorAll('td.yourClass');
然后可以调用
innerHTML
或textContent
以字符串形式获取td的内容。您还可以使用:
jQuery('td.yourClass');
并在每个元素上调用
.text()
以获取td的内容。