过去几天我一直在尝试这样做,但我的 Javascript 很糟糕。非常。
基本上,我试图完成的是获取 td 中的值,并检查 10 位数字的字符串。 (实际上,任何美国格式的电话号码。我已经想出了正则表达式。)我需要用其他东西(不是电话号码的东西)替换那个字符串。
表结构如下:
<tr id="76">
<td class="stxt">
<div class="dtxt" id="t1344992123" title="14 Aug 12, 08:55 PM">17 mins ago</div>
<span>
<a title="Delete">[×]</a>
<a title="Ban User">[o]</a>
</span>
<b class="nme pn_std">Person</b>
: This is a line a user has said previously
</td>
</tr>
将有几行都具有相同的格式。它说“:这是用户之前说过的一行”是需要检查数字的地方。
我发布的表格格式是我必须使用的全部内容。无法添加,也无法删除任何标签/属性。
如果有人能够想出代码来检查和替换我正在搜索的每个实例,我可以自己插入正则表达式和替换字符串。
而且,如果有人好奇,这是用于 cbox 聊天的单词过滤器。它只是在有人加载聊天时运行的东西。
任何能帮助我的人都会很棒。就像我说的,我不擅长 Javascript。 PHP 是我使用的语言。
最佳答案
如果您不支持 IE8 以下的任何内容,您可以使用更新的 querySelectorAll。但在发表评论后,我想我会发表评论以支持旧方法。
//var tableCells = document.querySelectorAll('#tableId td'),
var tableCells = document.getElementsById('tableId').getElementsByTagName('td'),
i = tableCells.length;
while(i--){
var thisCell = tableCells[i];
thisCell.innerHTML = thisCell.innerHTML.replace(yourRegEx,yourReplacementStuff);
}
在有人讨论 regEx 和 HTML 之前,请记住他只是在这里查找电话号码,而不是用 regEx 解析 HTML。您可以在整个表格的 innerHTML 属性上使用 regEx,但我怀疑循环和咬掉较小的部分实际上可能更快。
关于javascript - 使用 getElementsByTag 更改表中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11963298/