Я пытаюсь сортировать элементы списка по их первой букве. Я фильтрую div.list-title и затем показываю .list-элемент, который содержит все содержимое. Проблема в том, что я использую метод show непосредственно на методе фильтра, который не вызывает ничего, поскольку ему нужно показать .list-item (parent) для возвращаемых результатов. Я не уверен, как переписать это любым другим способом. Как я могу показать элемент списка для каждого возвращаемого элемента?Сортировка элементов списка по первой букве
$(document).ready(function() {
function filterResults(letter){
$('.list-item').hide();
$('li.list-item .list-title').filter(function() {
return $(this).text().charAt(0).toUpperCase() === letter;
}).show();
};
filterResults('A');
$('a').on('click',function(){
var letter = $(this).text();
filterResults(letter);
});
});
var $listItem = $('.list-item')
$('a').addClass(function(){
var s = this.textContent;
return $listItem.filter(function(){
return this.textContent.charAt(0) === s
}).length ? '' : 'grey';
})
JS Fiddle:
http://jsfiddle.net/2ewgr2mt/2/
Это сделал трюк! Огромное спасибо. Я обновил код с соответствующим синтаксисом выбора для будущих посетителей этого вопроса. –