Javascript SharePoint列表的jQuery字典字母表过滤器

Javascript SharePoint列表的jQuery字典字母表过滤器,javascript,jquery,sharepoint,filter,alphabetical,Javascript,Jquery,Sharepoint,Filter,Alphabetical,我在SP2013中有一个列表,我正在发布页面上使用Javascript提取列表项。我需要将字母过滤应用于此列表,但此列表上的过滤器不起作用;但是,过滤器在纯静态文本上工作得非常好。下面是我拉列表项的代码: $(function () { if (glossaryQuery && glossaryQuery.Rows) { var liGlossaryHTML = []; $('#glossary_list').toggle(

我在SP2013中有一个列表,我正在发布页面上使用Javascript提取列表项。我需要将字母过滤应用于此列表,但此列表上的过滤器不起作用;但是,过滤器在纯静态文本上工作得非常好。下面是我拉列表项的代码:

    $(function () {
        if (glossaryQuery && glossaryQuery.Rows) {
        var liGlossaryHTML = [];
        $('#glossary_list').toggle();
        $.each(glossaryQuery.Rows, function (index, r) {
            liGlossaryHTML.push('<li><strong>' + r.Title + '</strong><br/>' + r.Definition + '</li>');
        });            
        $('#glossary_list ul').html(liGlossaryHTML.join(''));
    }
}); 
}))

以及HTML:

<div id="glossary_list" style="display:none;">
<ul></ul>
</div>


    非常感谢您的帮助。

    我的怀疑是,由于您在页面加载后添加列表项,
    过滤器在运行时实际上与任何内容都不匹配。我建议将分配移到click处理程序中。您还可以做一些其他改进,使其更高效/可读

    $('ul.alphabet li a').click(function() {
        var takeLetter = $(this).text(),
            result = 0
            expr = new RegExp('^' + takeLetter);
    
        var filters = $('#glossary_list ul li')
            .parent()
            .hide();
    
        filters.each(function(i) {
             var $filter = $(this);
             if (expr.test($filter.text())) {
                 result += 1;
                 $filter.parent().fadeIn(222);
             }
        });
    });
    

    非常感谢!你的建议解决了这个问题!非常感谢。
    $('ul.alphabet li a').click(function() {
        var takeLetter = $(this).text(),
            result = 0
            expr = new RegExp('^' + takeLetter);
    
        var filters = $('#glossary_list ul li')
            .parent()
            .hide();
    
        filters.each(function(i) {
             var $filter = $(this);
             if (expr.test($filter.text())) {
                 result += 1;
                 $filter.parent().fadeIn(222);
             }
        });
    });