:visibleS2C Home « Selectors « :visible

Visible element selector.

Shorthand version $(':visible')


The :visible selector, selects all visible elements.

Opposite of the :hidden selector.

An element is considered 'hidden' if any of the following apply:

  • The CSS display attribute value is set to none.
  • The CSS height and width attribute values are set to 0.
  • The element is a <form></form> HTML element with type attribute value set to hidden.
  • An ancestor element is hidden, ergo also hiding this element.

Being a jQuery extension the :visible pseudo selector is not part of any current CSS specification. Therefore :visible cannot take advantage of the performance boost provided by the native DOM querySelectorAll() method.

If this selector is not preceded by another selector, the universal selector ("*") is implied and so the whole DOM will be searched. Use another selector as in the example below to narrow the search and improve performance.


Signature Description
jQuery(':visible')Visible element match





:visible ExampleTop

Select all visible elements.

In the example below an orange background is applied to any visible 'tr' elements in the table below that are clicked on. We display any hidden elements when the button below is clicked. You can still change any visible element to orange but clicking the previously hidden elements has no effect. Try clicking on a table row, then pressing the button below to see the effects.

Table For Testing Hidden/Visible Selectors
Table Row 1, Table Data 1 Table Row 1, Table Data 2
Table Row 2, Table Data 1 Table Row 2, Table Data 2
Table Row 3, Table Data 1 Table Row 3, Table Data 2
Table Row 4, Table Data 1 Table Row 4, Table Data 2

  $('.testtable tr:visible').on('click', function() {
    $(this).css('backgroundColor', 'orange');
  $('#btn24').on('click', function() {
    $(".testtable tr:hidden").show();

Press the button below to show hidden table rows above: