【发布时间】:2012-08-01 12:43:39
【问题描述】:
我正在尝试查找所有包含“FieldName=”的表格单元格。我最初使用 getElementsByTagName 执行此操作,然后使用 indexOf 循环测试,它工作得很好,得到 191 个单元格,然后完美地成功测试了我的目标单元格。
然后我用 $("td:contains('FieldName')");它失败了。我试过反斜杠等号,双反斜杠甚至删除它,我仍然得到零命中。这种情况是正确的,因为它可以与 indexOf 一起使用,无需转换为 UC 或 LC。
帮助! :-) 说真的,标准的 JS 可以工作,所以我会过得去,但是不能使用这么酷的工具并且不知道为什么真的很令人沮丧。这是我的代码 - 注释和取消注释以查看两种方法的结果:
//var cells = document.getElementsByTagName("td");
var cells = $("td:contains('FieldName\=')");
alert(cells.length);
for (var i = 0; i < cells.length; i++) {
if (cells[i].innerHTML.indexOf('FieldName=') > -1) {
// do stuff here...
}
}
我敢肯定,当有人发现我的错误时,我会觉得很傻,但我们就是这样学习的,嗯? :-)
一个样品池:
<TD valign="top" class="ms-formbody" width="400px">
<!-- FieldName="Title"
FieldInternalName="Title"
FieldType="SPFieldText"
-->
<span dir="none">
<input name="ctl00$m$g_c2ed1f85_8eef_4759_817c_cd68435bd0a3$ctl00$ctl04$ctl00$ctl00$ctl00$ctl04$ctl00$ctl00$TextField" type="text" maxlength="255" id="ctl00_m_g_c2ed1f85_8eef_4759_817c_cd68435bd0a3_ctl00_ctl04_ctl00_ctl00_ctl00_ctl04_ctl00_ctl00_TextField" title="Title" class="ms-long" /><br>
</span>
</TD>
【问题讨论】:
-
html 方便吗?有助于加快速度:)
-
另外,请提及您正在使用的 jQuery 版本...
-
发布 HTML,这是我们能够解决此问题的唯一方法。
-
我会发布一个单元格,但整个页面很大。但是,正如我最初所说,getElementsByTagName 和 indexOf 可以完成工作......
-
另外,我应该补充一点,如果我删除包含,大小写无关紧要 - 无论我使用 td 还是 TD,我都会得到 191 个单元格,但如果我添加包含,我会得到 zip。
标签: jquery contains getelementsbytagname