根据多个表格单元格条件选中复选框
Posted
技术标签:
【中文标题】根据多个表格单元格条件选中复选框【英文标题】:Check checkbox based on multiple table cell criteria 【发布时间】:2017-01-28 23:45:03 【问题描述】:我有一个充满数据的 html 表,第一列包含一个输入复选框和一个名称。当满足两个条件时,我想选中此复选框:
-
名称为“完成”
发送的日期与“m/d/yyyy”中传递的字符串匹配,即“9/20/2016”(无前导零)
我已经可以使用 getElementByTagName("input") 做第一个并检查它是否是一个复选框并且名称是否完整
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/
【问题讨论】:
你能提供一个表结构的例子吗? sn-p/jsfiddle 会很棒。 按班级选择应该得到日期。那不行吗?代码看起来像$('.dateSentClass').val()
【参考方案1】:
要获取复选框,您可以使用:
document.querySelectorAll('input[type=checkbox]');
或:
jQuery('input[type=checkbox]');
您可以使用以下方法获取 tds 数组:
document.querySelectorAll('td.yourClass');
然后您可以调用innerHTML
或textContent
以将td 的内容作为字符串获取。
你也可以使用:
jQuery('td.yourClass');
并在每个元素上调用.text()
以获取 td 的内容。
【讨论】:
【参考方案2】:听起来您正在尝试获取与包含由allRows[i]
表示的input
的单元格位于同一行的td.dateSentCell
单元格的文本。如果这是正确的,你可以使用这个 jQuery:
var dateText = $('td.dateSentCell', $(allRows[i]).parent().parent()).text();
【讨论】:
以上是关于根据多个表格单元格条件选中复选框的主要内容,如果未能解决你的问题,请参考以下文章
Swift - 处理表格视图多个部分的自定义复选标记按钮状态
如何在单元格渲染后检查表格视图上的复选标记图标(附件视图)?