jQuery | Удалить tags li

Я ищу решение для удаления тегов

  • отфильтрованных с помощью массива javascript.

    var mygroups = [“1”, “8”, “3”, “4”, “5”]

    Пример (ввод):

     
  • 1 element. Bla bla bla
  • 2 element. Bla bla bla. This is my post into new group
  • 3 element. Bla bla bla. Another one
  • 5 element. Bla bla bla. This is my new post
  • 6 element. groups.wall
  • 7 element.
  • Как получить этот вывод (удалить все экземпляры, которые не содержат мои группы):

     
  • Спасибо!

    Вам действительно нужно ввести какой-то флаг (имя classа для экземпляра или некоторые атрибуты data- ), чтобы идентифицировать узлы

  • вам не нужно отображать. Такая подробная проверка должна проверять весь HTML для каждого

  • , что не является хорошей практикой. Однако это может выглядеть так:

     $('li').each(function(_, node) { if( !/group|groups/.test( node.innerHTML ) ) $(node).remove(); }); 

    Демо: http://jsfiddle.net/zkprg/

    EDIT: Обновлен в соответствии с вашими новыми требованиями.

    Обновлен пример jsFiddle .

    Код jQuery, который я использовал, был:

     $(function() { var mygroups = ["1", "8", "3", "4", "5"]; $('li').each(function() { var $li = $(this); // if you only want li's with an  link to a group page which matches one // in your mygroups list... var $a = $li.find('a[href^="/groups/viewgroup/"]'); // if we find a matching  (whose href attribute starts with "/groups/viewgroup/") if ($a.length) { // extract this 's group number using a regular expression var groupNum = $a.attr('href').replace(/^\/groups\/viewgroup\/(\d+)-.+$/gi, '$1'); // remove the 
  • if group number is not in our allowed array if ($.inArray(groupNum, mygroups) == -1) $li.remove(); } else { $li.remove(); // no found, so remove this
  • } }); });
  • Я попытался прокомментировать это, чтобы объяснить большинство строк, дайте мне знать, если что-то не имеет смысла. Вы можете использовать эту страницу ChopApp, чтобы нажимать на строки и добавлять примечания / вопросы легче, чем вы можете в StackOverflow. Просто оставьте мне комментарий здесь, если вы используете это, и я отвечу на ваши вопросы.