使用jQuery排序JSON时未捕获的TypeError

时间:2014-01-20 19:21:25

标签: javascript jquery

我编写了以下代码来根据不同的标准对从JSON数组中提取的项目列表进行排序。但是,当我单击其中一个条件对列表进行排序时,我会在控制台中获得Uncaught TypeError: Object #<HTMLTableSectionElement> has no method 'sort'。我还得到另一个错误Uncaught TypeError: Cannot read property 'rollno' of null。可能是造成这个问题的原因是什么?

这是我的主要脚本:

$(function () {
    jQuery.noConflict();

    $.getJSON('results_new.json', function (data) {
        results = data.results.map(function (raw) {
            return {
                rollno: raw.rollno,
                name: raw.name,
                air: raw.air
            }
        });
    })

    $('#headings th').click(function () {
        var id = $(this).attr('id');
        var asc = (!$(this).attr('asc'));

        $('#headings th').each(function () {
            $(this).removeAttr('asc');
        });
        if (asc) $(this).attr('asc', 'asc');

        sortResults(id, asc);
    });

    showResults();
});

function sortResults(prop, asc) {
    results = results.sort(function (a, b) {
        if (asc) return (a[prop] > b[prop]);
        else return (b[prop] > a[prop]);
    });
    showResults();
}

function showResults() {
    var html = '';
    for (var e in results) {
        html += '<tr>' + '<td>' + results[e].rollno + '</td>' + '<td>' + results[e].name + '</td>' + '<td>' + results[e].air + '</td>' + '</tr>';
    }
    $('#results').html(html);
}

HTML包含theads标题,其ID设置为rollnonameair以及自动生成的tbody ID {{ 1}},这是空白的。

任何帮助将不胜感激!

0 个答案:

没有答案