JavaScript:在一行中搜索字符串,如果找到字符串就删除行
JavaScript: Search for a string in a row and delete row if string is found
我想要一个脚本,删除其中关键字STRING在单元格中找到的每一个表行,但我的脚本似乎删除了包含STRING关键字的每一个其他行。显然,每次删除一行时,都会更新行编号。怎么解释呢?提前谢谢。
<script type="text/javascript">
var table = document.getElementById("DatePreferred").firstChild;
var rowCount = table.rows.length;
for(var i=0; i<rowCount; i++) {
var row = table.rows[i];
var text = row.cells[0].innerText;
if(text.indexOf("STRING")!=-1){
table.deleteRow(i);
}
}
</script>
编辑:所以FishBasketGordo的答案让我的脚本为IE和Safari工作,但它不是在FF工作。我看了看错误在哪里,显然FF处理。innertext不同。你必须使用。textcontent。因此,如果你将下面的代码添加到上面的脚本中,它将使用相应的方法:
if (row.cells[0].textContent){
var text = row.cells[0].textContent;}
else {var text = row.cells[0].innerText;}
当我需要做这样的事情时,我喜欢向后工作:
for(var i= rowCount - 1; i >= 0; i--) {
var row = table.rows[i];
var text = row.cells[0].innerText;
if(text.indexOf("STRING")!=-1){
table.deleteRow(i);
}
}
当您删除一行时,使用i--
减少i,以便您的for
循环重新检查相同的索引(现在将包含下一行)
编辑:再次查看代码后,您将需要比较i
和table.rows.length
,而不是rowCount
变量,以解释table.rows
长度的变化。
相关文章:
- 从一个数组中移除字符串(如果存在于另一个数组)
- 移除字符串(如果找到)移除JS中字符串的一部分
- 在字符串列表中搜索任何出现的单词,如果单词的第一个字符匹配,则高亮匹配单词.Javascript正则表达式
- Regex模式,用于检查字符串中每个单词的第一个字母(如果是Javascript中的大写字母)
- Javascript-使用“”将toDateStringMonth从文本字符串解析为数字字符串;如果“;vs“;开关”;
- 如果以下字符串为
- javascript字符串替换$1(如果它是某个值)
- jqueryajax生成查询字符串,如果未定义则不通过
- 如果URL中有任何字符串变体匹配,则返回true
- 如果条件推送包含/匹配字符串的值
- 如何将字符串解析为整数并保留小数位(如果它们是零)
- 如果字符串保存在变量中,如何查找包含字符串的ID
- 如果通过字符串变量发送,HTML内部的子窗口将显示为文本
- 如果字符串中存在错误,请检查数组中的char
- 如果缺少字符串,如何插入括号和值
- 如果el包含此文本,请从中删除此字符串
- JavaScript在单击时从列表中删除字符串(如果已经存在)
- Javascript 正则表达式,用于在问号之前获取字符串(如果存在)
- 如何填充如果字段不是空字符串如果为空则不需要填充
- Json字符串如果键错误设置显示.否则显示数据