Javascript Internet Explorer 7返回';未定义';从jQuery类选择器

Javascript Internet Explorer 7返回';未定义';从jQuery类选择器,javascript,jquery,internet-explorer,jquery-selectors,Javascript,Jquery,Internet Explorer,Jquery Selectors,我有一个小的JavaScript函数,它(除其他外)用特定的类名检索最后一个元素的ID var lastRowID = $(".sectionRow:last").attr('id'); 它应该在表中找到与以下内容类似的元素: <table> <tr id="courseSection[0]" class="sectionRow"><td>stuff</td></tr> <tr id="courseSection

我有一个小的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>

东西
更多的东西
如果我快速发出
警报(lastRowID)
,我会在Chrome、Firefox和IE8中看到“courseSection[1]”。然而,IE7讨厌我,说“未定义”

注意:我还尝试了
$(“.sectionRow”).last().attr('id')
,但没有成功

对可能发生的事情有什么想法吗?谢谢

编辑:此表是通过单击按钮(按钮显示/添加表单的下一部分)使用javascript添加的。因此,页面加载时DOM中不是静态html


单击删除链接时,将调用removeSectionRow(n)函数。它删除指定的行,然后搜索类名为“sectionRow”的最后一行,以便为该行提供“AddAddAdditionalRow”链接。其思想是用户可以随意添加和删除行。下面是一个完成结果的屏幕截图,以说明我可能解释得不好的地方:

可能是因为它是无效的HTML?你需要
标签。我在IE8工作


可能是因为它是无效的HTML?你需要
标签。我在IE8工作


字符
[
]
不是有效的ID字符。也许这在IE7中引起了一些问题

测试选择器返回的元素数量,以查看是否获得

alert( $(".sectionRow:last").length );

字符
[
]
不是有效的ID字符。也许这在IE7中引起了一些问题

测试选择器返回的元素数量,以查看是否获得

alert( $(".sectionRow:last").length );

真正的代码在那里。而且它在IE8中工作得很好:)啊..没有安装IE7。对不起;)别担心!直到今天早上一个用户接近我并告诉我IE7上的这个错误,我也没有这么做。我不得不找到一台装有IE7的机器来复制它。我最终使用了一个名为“IETester”的程序,它实际上相当不错(而且是免费的!),真正的代码就在那里。而且它在IE8中工作得很好:)啊..没有安装IE7。对不起;)别担心!直到今天早上一个用户接近我并告诉我IE7上的这个错误,我也没有这么做。我不得不找到一台装有IE7的机器来复制它。我最终使用了一个名为“IETester”的程序,它实际上相当不错(而且是免费的!)很好地了解了括号!下一步我将尝试移除这些。警报返回了0,因此找不到其中任何一个。请参阅此问题以了解有关id属性有效/无效的详细信息:@Erik-在IE7中测试,我没有任何问题。你有没有可能在问题代码中删掉了这个问题?如果您执行
警报($(“.sectionRow”).length)如何?很可能——我刚刚尝试了下面的jsfiddle.net链接,我的示例在IE7中似乎运行良好。让我看看是否可以把上下文的范围扩大一点。很高兴了解括号!下一步我将尝试移除这些。警报返回了0,因此找不到其中任何一个。请参阅此问题以了解有关id属性有效/无效的详细信息:@Erik-在IE7中测试,我没有任何问题。你有没有可能在问题代码中删掉了这个问题?如果您执行
警报($(“.sectionRow”).length)如何?很可能——我刚刚尝试了下面的jsfiddle.net链接,我的示例在IE7中似乎运行良好。让我看看是否可以将上下文的范围扩大一点。单击某个链接时,代码正在运行。对问题进行了编辑(希望)以便更好地解释。表本身是在页面加载后由javascript创建和插入的。这导致了一个有趣的IE7错误,除非我使用了“tbody”标记(source:),否则该表不会/呈现/显示。我会向该表添加一个
,因为浏览器可能会插入一个。这样你就有了一致性。真的不应该有任何问题。为什么不让jQuery管理创建/删除行的处理程序?不管怎样,我猜其中一个函数有问题。单击某个链接时代码正在运行。对问题进行了编辑(希望)以便更好地解释。表本身是在页面加载后由javascript创建和插入的。这导致了一个有趣的IE7错误,除非我使用了“tbody”标记(source:),否则该表不会/呈现/显示。我会向该表添加一个
,因为浏览器可能会插入一个。这样你就有了一致性。真的不应该有任何问题。为什么不让jQuery管理创建/删除行的处理程序?不管怎样,我猜其中一个函数有问题。