jquery - Search through a list of items to find a specific item with content in a specific attribute -


i have list of items. in each li custom attribute called data-index.

i want search through items , find each item specific string present in attribute.

i'm including whole thing here. suggestions? headed in right direction?

my expectation if search bg19 i'll 1 report in console.log. i'm getting 10 each time.

<!doctype html> <html> <head>     <meta charset="utf-8">     <meta http-equiv="x-ua-compatible" content="ie=edge">     <title>a selectable list</title>     <script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.0/jquery.min.js" ></script>     <style>         .hidden {              display:none;         }          .show {              display:block;         }     </style>     <script>         $(document).ready(function() {             $('#id-submit').on('click', $(this), function() {                 var userid = $('#user-id').val();                 $('#user-app-list').children('li').attr('data-index', userid).each(function() {                     console.log('here go');                 });                 event.preventdefault();             });         });     </script> </head> <body>     <h3>to select library, enter id number , click submit.</h3>     <form>         <input type="text" value="" placeholder="enter id here" id="user-id">         <input type="submit" value="submit" id="id-submit">     </form>     <ul id="user-app-list">         <li data-index="cd123 cd124 cd125 bg12 bg19 bg20" class="hidden">             <h3><a href="http://apple.com">apple</a></h3>         </li>         <li data-index="cd127 cd128 cd130 bg12" class="hidden">             <h3><a href="http://amazon.com">amazon</a></h3>         </li>         <li data-index="cd121 cd119 cd125 bg12" class="hidden">             <h3><a href="http://google.com">google</a></h3>         </li>         <li data-index="cd123 cd124 cd125 bg12 bg20" class="hidden">             <h3><a href="http://youtube.com">youtube</a></h3>         </li>         <li data-index="cd123 cd124 cd125 bg12 bg20" class="hidden">             <h3><a href="http://vimeo.com">vimeo</a></h3>         </li>         <li data-index="cd127 cd127 cd120 bg12 bg20" class="hidden">             <h3><a href="http://ebay.com">ebay</a></h3>         </li>         <li data-index="cd127 cd119 cd118 bg12 bg20" class="hidden">             <h3><a href="http://craigslist.org">craigslist</a></h3>         </li>         <li data-index="cd128 cd127 cd130 bg12 bg20" class="hidden">             <h3><a href="http://inside.com">inside</a></h3>         </li>         <li data-index="cd129 cd119" class="hidden">             <h3><a href="http://cnn.com">cnn</a></h3>         </li>         <li data-index="cd130 cd118 cd125 bg12 bg20" class="hidden">             <h3><a href="http://bbc.com">bbc</a></h3>         </li>     </ul>      <p>test of following: cd118, cd119, cd120, cd121, cd123, cd124, cd125, cd127, cd128, cd129, cd130, bg12, bg19, bg20</p> </body> </html> 

you need use attribute contains word selector $('#user-app-list').children('li[data-index~="'+userid+'"]').

attribute contains word selector

selects elements have specified attribute value containing given word, delimited spaces.

$(document).ready(function () {     $('#id-submit').on('click', $(this), function () {         var userid = $('#user-id').val();         $('#user-app-list').children('li').hide().filter('[data-index~="' + userid + '"]').show();         event.preventdefault();     }); }); 

demo: fiddle

what doing set value of data-index attribute


Comments

Popular posts from this blog

java - WrongTypeOfReturnValue exception thrown when unit testing using mockito -

php - Magento - Deleted Base url key -

android - How to disable Button if EditText is empty ? -