У меня есть элемент, который нужно сортировать.javascript sort DOM-элемент
<div id ="list">
<span data-index= "11">
<table>
<tr><td>abc</td></tr>
</table>
</span>
<span data-index= "1">
<table>
<tr><td>deftd</td></tr>
</table>
</span>
<span data-index= "5">
<table>
<tr><td>ddd</td></tr>
</table>
</span>
</div>
У меня был этот код, чтобы сортировать его:
function sortChildren(wrap, f, isNum) {
var l = wrap.children.length,
arr = new Array(l);
for(var i=0; i<l; ++i)
arr[i] = [f(wrap.children[i]), wrap.children[i]];
arr.sort(isNum
? function(a,b){ return a[0]-b[0]; }
: function(a,b){ return a[0]<b[0] ? -1 : a[0]>b[0] ? 1 : 0; }
);
var par = wrap.parentNode,
ref = wrap.nextSibling;
par.removeChild(wrap);
for(var i=0; i<l; ++i) wrap.appendChild(arr[i][1]);
par.insertBefore(wrap, ref);
}
sortChildren(
document.getElementById('list'),
function(li) { return +li.dataset.index; }
);
Этот код отлично работает в Google Chrome, но IE вызывает проблему для меня. Когда я перехожу IE в поле зрения совместимости, кода косяка работы и показать мне ошибку, как показано ниже:
Unable to get property 'index' of undefined or null reference
Как я могу решить эту проблему?
IE версии используется? –
Моя текущая версия IE - 11, обращение к представлению совместимости становится 7. –