Вот рабочее решение:
var weatherElements = [];
var weatherElementsArr = weatherElement.getElementsByTagName("weather");
for (var i in weatherElementsArr) {
if (weatherElementsArr[i].nodeType == 1) {
weatherElements.push(weatherElementsArr[i]);
}
}
weatherElements.sort(s);
Проблема была здесь:
var weatherElements = weatherElement.getElementsByTagName("weather");
weatherElements=weatherElements.sort(s);
Значение weatherElements
было HTMLCollection
, которое вы не можете отсортировать, потому чтоэто не нативный массив javascript.Это коллекция элементов HTML.
Создав массив с элементами узлов, вы теперь можете отсортировать их, как и ожидалось.