我有一个小的JavaScript函数,除其他外,它检索具有特定类名的最后一个元素的ID。
var lastRowID = $(".sectionRow:last").attr('id');
它应该在表中找到类似于以下内容的元素:
<table>
<tr id="courseSection[0]" class="sectionRow"><td>stuff</td></tr>
<tr id="courseSection[1]" class="sectionRow"><td>more stuff</td><td><a href="javascript:removeSectionRow(1)">(remove)</a></td><td><a href="javascript:addSectionRow()">(add additional row)</a></td></tr>
</table>
如果我快速alert(lastRowID)
,我会在Chrome,Firefox和IE8中获得'courseSection [1]'。然而,IE7讨厌我并说“未定义”。
注意:我也试过$(".sectionRow").last().attr('id')
没有成功。
有关可能发生的事情的任何想法?谢谢!
编辑:此表是在按钮单击时使用javascript添加的(按钮显示/添加表单的下一部分)。所以它不是页面加载时DOM中的静态html。
单击删除链接时会调用removeSectionRow(n)函数。它删除指定的行,然后搜索保留类名“sectionRow”的最后一行,以便为该行添加“添加额外行”链接。这个想法是用户可以随意添加和删除行。这是完成结果的屏幕截图,以说明我可能很难解释的内容:http://imgur.com/uXYHj.png
答案 0 :(得分:1)
字符[
和]
不是有效的ID字符。也许这在IE7中引起了一些问题。
测试选择器返回的元素数量,以确定您是否获得了<tr>
。
alert( $(".sectionRow:last").length );
答案 1 :(得分:0)
也许是因为HTML无效?你需要<td>
个标签。适合我在IE8中使用。