2017-02-17 17 views
0

У меня есть карта, чьи features меняются в зависимости от протяженности карты. Функция renderListings создает элемент item для каждой функции, а затем добавляет все элементы в listingEl каждый раз, когда карта изменяется. Пока это работает нормально.Добавить дочерний и сортирующий динамический список

innerHTML каждого item основан на свойстве функции - prop.code, который представляет собой строку текста. В этот момент функция добавляет элементы неупорядоченным способом, а не в алфавитном порядке.

Я попытался добавить .sort() к listingEl.appendChild(item).sort() но только один элемент отображается в списке и все другие исчезают.

Как можно было бы добавить в алфавитном порядке детей по свойству функции prop.code в javascript?

ответ

0

Просто закажите функции, прежде чем добавлять их в список.

var listingEl = document.getElementById('feature-listing'); 

function renderListingsSorted(features) { 
    var sortedFeatures = sortFeaturesByCode(features); 
    renderListings(sortedFeatures); 
} 

function sortFeaturesByCode(features) { 
    return features.sort(function(f1, f2){ 
     var code1 = f1.properties.code; 
     var code2 = f2.properties.code; 
     return code1.localeCompare(code2); 
    }); 
} 

function renderListings(features) { 
    // ... 
} 
+0

это не работает, потому что 'features', которые входят в' renderListings() 'остаются НЕСОРТИРОВАННАЯ –

+0

ли вы имеете в виду' функцию sortFeaturesByCode' фактически не сортировать особенности? – abl

+0

правильно, списки не сортируются, потому что все должно быть в 'renderListings()' функции, если это возможно –

 Смежные вопросы

  • Нет связанных вопросов^_^