我有一张地图,其features
根据地图范围而变化。函数renderListings
为每个要素创建元素item
,然后在每次地图更改时将所有项目添加到listingEl
。到目前为止,工作正常。
每个innerHTML
的{{1}}基于要素的属性 - item
,这是一个文本字符串。此时,该函数以无序方式追加项目,而不是按字母顺序。
我尝试将prop.code
添加到.sort()
,但只有一个项目出现在列表中,其他所有项目都会消失。
如何通过javascript中的要素属性listingEl.appendChild(item).sort()
按字母顺序追加子项?
prop.code
答案 0 :(得分: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) {
// ...
}