我有一个小的 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
最佳答案
字符[
和]
不是有效的 ID 字符。也许这会导致 IE7 出现一些问题。
测试选择器返回的元素数量,看看是否得到 <tr>
或不。
alert( $(".sectionRow:last").length );
关于javascript - Internet Explorer 7 从 jQuery 类选择器返回 'undefined',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3918381/