Advertisement
braveheart1989

domSearch

Oct 22nd, 2016
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function domSearch(selector, cs) {
  2.     let wrapper = $(selector);
  3.    
  4.     function generateHtml(wrapper) {
  5.         let addControls = $(`<div class="add-controls"><label>Enter text: <input></label><a class="button" style="display:inline-block;">Add</div>`);
  6.         let searchControls = $(`<div class="search-controls"><label>Search: <input></label></div>`);
  7.         let resultControls = $(`<div class="result-controls"><ul class="items-list">
  8. <li class="list-item"></li>
  9. </ul></div>`);
  10.         //използване на find за директно намиране на търсения елемент.(от jQuery)
  11.         addControls.find('a').click(createListItem);
  12.         searchControls.find('input').on('change',searchListItem);
  13.         wrapper.append(addControls);
  14.         wrapper.append(searchControls);
  15.         wrapper.append(resultControls);
  16.     }
  17.  
  18.     //за да се генерира html-a просто извикваме функцията и подавам selector.
  19.     generateHtml(wrapper);
  20.     function createListItem() {
  21.         let text = $('div.add-controls input').val();
  22.         let ul = $('.items-list');
  23.         let list = $(`<li class="item-list"><a class="button">X</a><strong>${text}</strong></li>`);
  24.         list.appendTo(ul);
  25.         list.find('a').click(deleteListItem);
  26.     }
  27.  
  28.     function deleteListItem() {
  29.         let li = $(this).parent();
  30.         li.remove();
  31.     }
  32.  
  33.     function searchListItem() {
  34.        
  35.         let searchText = $('.search-controls').find('input').val();
  36.         if(cs == false) {
  37.             searchText=searchText.toLowerCase();
  38.         }
  39.         let itemList = $('.items-list li');
  40.         for (let i = 0; i < itemList.length; i++) {
  41.             let item = itemList.eq(i);
  42.             //eq-достъпвам елементите от jquery колекция
  43.             let textContent = item.find('strong').text();
  44.             if(cs == false) {
  45.                 textContent = textContent.toLowerCase();
  46.             }
  47.             if(!textContent.includes(searchText)) {
  48.                 itemList.eq(i).css('display','none');
  49.             }
  50.             else {
  51.                 itemList.eq(i).removeAttr('style')
  52.             }
  53.         }
  54.     }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement