我一直在努力对表上的列应用简单排序,可以在单击列标题时对整个表进行排序。附加的代码在Firefox,Chrome,IE10及以上版本中完美运行。但是我在IE 8中得到了appendChild:类型不匹配错误。我知道有一个叫做tablesorter的jQuery程序,但理想情况下我想把它保存到一个简单的javascript函数中。任何人都可以建议我需要做什么才能在IE8中进行排序?
这里有一个jsfiddle来查看代码并看到它在现代浏览器中工作: http://jsfiddle.net/gj0k0sod/(使用innerHTML的新jsfiddle)
用于在单击列时对表本身进行排序的javascript函数
function sortTable(table, col, reverse) {
var tbcount = table.rows.length - 2,
tb = table.tBodies[0], // use `<tbody>` to ignore `<thead>` and `<tfoot>` rows
i;
var tr = [];
for (i = 0; i < tbcount; i++) {
tr.push(tb.rows[i]);
}
reverse = -((+reverse) || -1);
tr = tr.sort(function (a, b) { // sort rows
return reverse // `-1 *` if want opposite order
* (a.cells[col].innerHTML // using `.textContent.trim()` for test
.localeCompare(b.cells[col].innerHTML)
);
});
for(i = 0; i < tr.length; ++i) tb.appendChild(tr[i]); // append each row in order
sortOrder = sortOrder * -1;
}