我有一个充满数据的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');


然后可以调用innerHTMLtextContent以字符串形式获取td的内容。

您还可以使用:

jQuery('td.yourClass');


并在每个元素上调用.text()以获取td的内容。

07-24 09:44
查看更多