Using jQuery, how do you find only visible elements and leave hidden elements alone? Using jQuery, how do you find only visible elements and leave hidden elements alone? jquery jquery

Using jQuery, how do you find only visible elements and leave hidden elements alone?


You can use the :visible selector to find only visible.

$(".someDiv:visible").each(....);

You can use the .not() selector to find only hidden.

$(".someDiv").not(":visible").each(....);

I think you can perform the same operation in your code with this one line.

$(".someDiv").hide().find(".regular").show();

Find all .someDiv and hide them, then find those with a .regular class and show them.


You could use :visible selector to select the .someDiv that are visible.

$(".someDiv:visible").each(function(){ if($(this).hasClass("regular")){    $(this).show();  } else {    $(this).hide();  }});

Here is another funny way utilizing the chaining :) and making it single line.

$('.someDiv:visible').not($('.someDiv.regular:visible')).hide();


You could do this two ways: You could add another class for the display: none elements and make them invisible via css, or you could find out the css property via jquery

via css class

html

<div class="someDiv bold italic hidden" >Lorem</div><div class="someDiv regular italic" >Lorem</div><div class="someDiv bold hidden" >Ipsum</div><div class="someDiv regular" >Ipsum</div>

css

.someDiv{    display: block;}.hidden{    display: none;}

js

$(".someDiv").each(function(){  if($(this).hasClass("hidden")){    $(this).show();  } else {    $(this).hide();  };

via jquery

$(".someDiv:visible").each(function(){ if($(this).hasClass("regular")){    $(this).show();  } else {    $(this).hide();  }});