Advertisement
Guest User

Dom Search

a guest
Oct 21st, 2016
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function domSearch(container,sensitivity){
  2.         if(!$(container).is('.add-controls,.search-controls,.result-controls'))$(container).attr('class','items-control');
  3.         console.log($(container));
  4.         let addControls = $('<div>');
  5.         addControls.attr('class','add-controls');
  6.         addControls.append($('<label>').text('Enter text: ')
  7.                 .append('<input>'))
  8.                 .append($('<a>').attr('class','button').attr('style','display: inline-block').text('Add'));
  9.         $(container + '.items-control').append(addControls);
  10.         let searchControls = $('<div>');
  11.         searchControls
  12.                 .attr('class','search-controls')
  13.                 .append($('<label>').text('Search:').append('<input>'));
  14.         $(container + '.items-control').append(searchControls);
  15.         let resultControls = $('<div>');
  16.         let ul = $('<ul>').attr('class','items-list');
  17.         ul.append($('<li>').attr('class','list-item').append($('<a>').attr('class','button').text('X')).append($('<strong>').text('Element1')));
  18.         ul.append($('<li>').attr('class','list-item').append($('<a>').attr('class','button').text('X')).append($('<strong>').text('Element2')));
  19.         ul.append($('<li>').attr('class','list-item').append($('<a>').attr('class','button').text('X')).append($('<strong>').text('Another Element')));
  20.         ul.append($('<li>').attr('class','list-item').append($('<a>').attr('class','button').text('X')).append($('<strong>').text('Item1')));
  21.         ul.append($('<li>').attr('class','list-item').append($('<a>').attr('class','button').text('X')).append($('<strong>').text('Item2')));
  22.         ul.append($('<li>').attr('class','list-item').append($('<a>').attr('class','button').text('X')).append($('<strong>').text('List Item')));
  23.         $(container + ' .add-controls .button').on('click',function () {
  24.             let text = $(container + ' .add-controls input').val();
  25.             ul.append($('<li>').attr('class','list-item').append($('<a>').attr('class','button').text('X')).append($('<strong>').text(text)));
  26.         });
  27.         resultControls.attr('class','result-controls').append(ul);
  28.         $(container + '.items-control').append(resultControls);
  29.         $(container + ' ul').on('click','a.button',function () {
  30.             $(this).parent().remove();
  31.         });
  32.         $(container + ' .search-controls input').on('keyup',function () {
  33.             let searchedText = $(container + ' .search-controls input').val();
  34.             let ulOfItems;
  35.             if(sensitivity == true){
  36.                 ulOfItems = $(container + ' .result-controls .items-list li strong').toArray();
  37.                 for(let str of ulOfItems){
  38.                     let word = str.textContent;
  39.                     if(word.indexOf(searchedText) == -1){
  40.                         $(str).parent().attr('style','display: none');
  41.                     }
  42.                     else{
  43.                         $(str).parent().removeAttr('style');
  44.                     }
  45.                 }
  46.             }
  47.             else{
  48.                 searchedText = searchedText.toLowerCase();
  49.                 ulOfItems = $(container + ' .result-controls .items-list li strong').toArray();
  50.                 for(let str of ulOfItems){
  51.                     let word = str.textContent.toLowerCase();
  52.                     if(word.indexOf(searchedText) == -1){
  53.                         $(str).parent().attr('style','display: none');
  54.                     }
  55.                     else{
  56.                         $(str).parent().removeAttr('style');
  57.                     }
  58.                 }
  59.             }
  60.         });
  61.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement