我有这个代码在最新的Chrome,Firefox,Opera中完美运行,但在IE9-10中失败了:
var div = document.querySelector('#wrap'),
para = document.querySelectorAll('#wrap p');
var paraArr = [].slice.call( para ).sort(function( a,b ) {
return a.textContent > b.textContent;
});
paraArr.forEach(function( p ) {
div.appendChild( p );
});
小提琴: http://jsfiddle.net/2nUMk/1/
任何想法是什么问题? IE中的sort
实现与其他浏览器中的实现不一样吗?这里的问题是sort
吗?
答案 0 :(得分:2)
div.innerHTML = "";
中没有必要,因为它删除了已排序的元素。
在分拣机功能中,您可以显式设置返回值:
var paraArr = [].slice.call(para).sort(function (a, b) {
return a.textContent > b.textContent ? 1 : -1;
});