我有一个包含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 (点击“歌曲列表”)。
答案 0 :(得分:0)
我认为这是因为IE8不支持:last-child
选择器,只是:first-child