Jquery: в списке фильтрации (работает), как: сделать регистр нечувствительным, подсчитать количество ключевых слов, выбранных для каждой LI, и - PullRequest
1 голос
/ 30 апреля 2011

http://jsfiddle.net/nicktheandroid/ape5U/

Есть 2 или 3 вещи, с которыми мне нужна помощь, если вы можете помочь мне / направить меня в правильном направлении по любому из них, это было бы здорово.

1) сделать скрипт нечувствительным к регистру

2) При наборе 'holy' будет отображаться «ангелы, иисус, святой дух» , при добавлении слова 'spirit' будет отображаться только «святой дух» . Я хочу, чтобы он по-прежнему отображал 'ангелы, иисус, святой дух' , но рядом с каждым из этих пунктов списка должно было быть изменено розовое число, чтобы отразить, сколько ключевых слов у каждого из них соответствует одному или нескольким из ключевых слов. ты напечатал. Поэтому, если я наберу 'holy spirit', я хочу, чтобы он отображал элементы списка 'ангелы, иисус, святой дух' , поскольку все они имеют ключевые слова 'holy', поэтому розовый номер каждого элемента списка должен читаться 1 , но 'ангелы' и 'святой дух' также содержат скрытое ключевое слово 'spirit', поэтому их розовые числа должны увеличиться на 1 каждый.

  • ангелы 2
  • Иисус 1
  • Святой Дух 2

Теперь, если я добавлю 'archangel' к 'holy spirit', чтобы я набрал 'holy spirit archangel', то розовый номер элемента списка 'angels' должен увеличиться до 3, потому что он содержит 3 из ключевых слов, которые я набрал, делая его наиболее точным.

сейчас розовые цифры ничего не делают, и они фильтруют и отображают только элементы списка с ключевыми словами EXACT. Мне нужно исправить эти вещи, любая помощь очень ценится. Я потратил на это часы.

Ответы [ 2 ]

1 голос
/ 30 апреля 2011

Если вы всегда сохраняете теги в нижнем регистре, просто преобразуйте все напечатанные записи в нижний регистр, прежде чем использовать разделение. Кроме того, вы в настоящее время сопоставляете текст, а не список тегов.

То, как вы проводите тесты на совпадения, похоже на & - AND, если вы хотите, чтобы оно было | - ИЛИ затем запустить false и переключиться на true при положительном совпадении, а не наоборот.

Что касается подсчета, установите все значения на 0 в начале нового сканирования, затем, когда тег обнаружен в цикле сравнения, увеличьте значение в этом теге.

Обновленная демонстрация: http://jsfiddle.net/ape5U/22/

0 голосов
/ 30 апреля 2011
  1. var filter = $(this).val().toLowerCase()

Установите значение фильтра в нижнем регистре и убедитесь, что все теги в нижнем регистре.

...