Advertisement
Guest User

DOM Search

a guest
Oct 28th, 2018
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function domSearch(selector, caseSensitive) {
  2.  
  3.     let element = $(selector);
  4.  
  5.     let addDiv = $("<div class='add-controls'>")
  6.         .append($("<label>Enter text:<input id='input'></label>"))
  7.         .append($("<a class='button'>Add</a>")
  8.             .on('click', addText()));
  9.  
  10.     let searchDiv = $("<div class='search-controls'>")
  11.         .append($("<label id='searched'>Search:</label>")
  12.             .append($("<input>")
  13.                 .on('input', searchText())));
  14.  
  15.     let resultDiv = $("<div class='result-controls'>")
  16.         .append($("<ul class='items-list'></ul>"));
  17.  
  18.     element.append(addDiv);
  19.     element.append(searchDiv);
  20.     element.append(resultDiv);
  21.  
  22.  
  23.     function addText() {
  24.         let text = $("#input").val();
  25.  
  26.         let li = $("<li>")
  27.             .append($("<a class='button'>X</a>")
  28.                 .on('click', $(this).parent().remove()))
  29.             .append(`<strong>${text}</strong>`);
  30.  
  31.         $(".items-list").append(li);
  32.     }
  33.  
  34.     function searchText() {
  35.         let searched = $("#searched").val();
  36.  
  37.         if (searched === undefined) {
  38.             searched = "";
  39.         }
  40.  
  41.         let pattern = new RegExp(searched, "g");
  42.  
  43.         if (!caseSensitive) {
  44.             pattern.ignoreCase;
  45.         }
  46.  
  47.         let list = $(".items-list li");
  48.  
  49.         for (let li of list) {
  50.             if (pattern.test(li.val())) {
  51.                 li.css("display", "");
  52.             } else {
  53.                 li.css("display", "none");
  54.             }
  55.         }
  56.     }
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement