There are div elements with a placeholder class, each has a data-name with text

<div class="placeholder" data-name="one">one</div> <div class="placeholder" data-name="two">two</div> <div class="placeholder" data-name="three">three</div> <div class="placeholder" data-name="four">four</div> <div class="placeholder" data-name="five">five</div> <div class="placeholder" data-name="six">six</div> <div class="placeholder" data-name="seven">seven</div> 

I have a list of needed names: one , four, and six . Need to hide all the rest.

 $(".placeholder").data('name') //Выдаёт значение name с первого div 

The problem is that there are brackets, quotes, and dashes in the names.

    1 answer 1

     $(".placeholder").filter(function() { return ['one', 'four', 'six'].indexOf($(this).data('name')) === -1; }).hide(); 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="placeholder" data-name="one">one</div> <div class="placeholder" data-name="two">two</div> <div class="placeholder" data-name="three">three</div> <div class="placeholder" data-name="four">four</div> <div class="placeholder" data-name="five">five</div> <div class="placeholder" data-name="six">six</div> <div class="placeholder" data-name="seven">seven</div>