jQuery last-child在IE8中抛出异常

时间:2011-10-16 21:56:20

标签: jquery internet-explorer-8 css-selectors

我有一个包含3列的表格。第3列仅包含用于对行进行排序的标记。在$(document).ready上我使用jQuery来隐藏第3列(仅包含标签)并使用

将样式类添加到其他列
$(document).ready(function() {
$("#songListTable tr td:nth-child(3)").hide().width(0); 
$("#songListTable tr td:nth-child(1)").addClass("songTitle");
$("#songListTable tr td:nth-child(2)").addClass("songPerformer");
});

这适用于所有浏览器。我添加.width(0)以确保隐藏列不占用布局中的任何空间。

然后我使用表单选择发送值:

<form id="songSortForm" name="songSortForm" method="post" action="">
<select name="songSortSelect" id="songSortSelect" onChange=sortSongs(this.value)>

到脚本循环遍历列中的所有行,检查该行中的第3个td是否包含该值,并根据结果显示或隐藏整行。

function sortSongs (tagQuery) {
$("#songListTable tr").each(function() {
    $thisText= $(this).find("td:last-Child").html();
    $(this).show();

    if ($thisText.indexOf(tagQuery)>-1) {
    $(this).show();
    }
else {
    $(this).hide();
    } 
})
};

这在IE浏览器的所有浏览器中都很漂亮。 IE开发人员工具显示抛出异常而未在jQuery1.6.2脚本中捕获(第17行,字符12370)。但是当我逐步完成脚本时,每次在我的排序脚本中使用“td:last-Child”时,似乎都会抛出错误。脚本中断。 last-Child在(document).ready脚本中没有抛出任何错误,所以它在我自己的代码中可能是一个错误,但我一直在寻找2天的时间来在线找到答案。

表中附加到anthying的唯一样式是font-family,color,width,margin和text-align。

任何帮助都会非常感激!!

您可以在以下位置查看测试页:http://donbryn.ipage.com/media.php (点击“歌曲列表”)。

1 个答案:

答案 0 :(得分:0)

我认为这是因为IE8不支持:last-child选择器,只是:first-child