Javascript SharePoint列表的jQuery字典字母表过滤器
我在SP2013中有一个列表,我正在发布页面上使用Javascript提取列表项。我需要将字母过滤应用于此列表,但此列表上的过滤器不起作用;但是,过滤器在纯静态文本上工作得非常好。下面是我拉列表项的代码: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(
$(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);
}
});
});