Array.sort()无法比较textContext

时间:2019-07-10 09:01:23

标签: javascript contao

我有一个contao项目,并在a中添加了一个小脚本,然后将其添加到html页面。

我正在尝试按其内容对div进行排序。在我将两个div的内容相互比较并返回-1或1之前,一切工作正常。

  

参数列表后未捕获到的SyntaxError:缺少

这就是我在做什么

document.addEventListener("DOMContentLoaded", function(e) {

var lastTab = null;
var tabs = document.querySelectorAll('.tab');
var container = document.querySelector('.mod_article.first.last.block');
var htmlCollection = document.getElementsByClassName('item');
var type = ''
var items = Array.prototype.slice.call(htmlCollection)

// Click Events
tabs.forEach(tab => {

    tab.addEventListener('click', ()=> {

        type = tab.textContent.toLowerCase();

        if(lastTab == null || lastTab != tab) {

            lastTab = tab;
            console.log('this clicked', tab);

            // FIRST CLICK
            // SORT A to Z

            sortDivs(type, false);
        }
        else if(lastTab == tab) {

            // SECOND CLICK
            // SORT Z to A

            sortDivs(type, true);

            lastTab = null
        }

    }, false);
});

function sortDivs(type, reverse) {

    console.log('Type ', type);
    console.log('Reverse ',reverse)

    items.sort(function(iA, iB) {

        var a = iA.querySelector('.wrap.toggler').querySelector('.'+type);
        var b = iB.querySelector('.wrap.toggler').querySelector('.'+type);

        var sA = a.textContent;
        var sB = b.textContent;

        // ERROR HERE BELOW         

        if(sA < sB) {
           return -1;
        }
        else {
           return 1;
        }
    });

    for(var item of items) {

        container.append(item)
    }

}
});

SOLVE: using sA.localeCompare(sB)

0 个答案:

没有答案
相关问题