根据多个表格单元格标准

时间:2016-09-20 22:05:08

标签: javascript jquery getelementsbytagname getelementsbyclassname

我有一个充满数据的html表,第一列包含一个输入复选框和一个名称。我想在满足两个条件时选中此复选框:

  1. 名称为“完整”
  2. 发送日期匹配以“m / d / yyyy”传递的字符串,即“9/20/2016”(无前导零)
  3. 我已经可以使用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/

    的小提琴

2 个答案:

答案 0 :(得分:0)

要获取复选框,您可以使用:

document.querySelectorAll('input[type=checkbox]');

或:

jQuery('input[type=checkbox]');

您可以使用以下内容获取tds的数组:

document.querySelectorAll('td.yourClass');

然后你可以调用innerHTMLtextContent来获取td的内容作为字符串。

您也可以使用:

jQuery('td.yourClass');

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

答案 1 :(得分:0)

听起来您正在尝试获取td.dateSentCell单元格的文本,该单元格与包含由input表示的allRows[i]的单元格位于同一行。如果这是正确的,你可以使用这个jQuery:

var dateText = $('td.dateSentCell', $(allRows[i]).parent().parent()).text();