How to exclude a DOM element from a jquery selector (demo)

  • 2020-03-30 02:41:45
  • OfStack

There are many jquery selectors, and there are many ways to select a DOM. How to make some exclusions on a selected set of elements? The following is illustrated by several examples:

1. Select all img elements, excluding the number of class=phpernote elements:

$('img:not(.phpernote)').length();// or $('img').not('.phpernote').length();

2. Get the number of all li elements without class=com under id=phpernote

$('#phpernote li:not(.com)').size();// or $('#phpernote li').not('.com').length();

3. Set the background of the li element on all the odd lines below id=phpernote
$('#phpernote li').not(':even').css('background-color', 'red');

Attached example: in jQuery, the specified element is excluded, while all remaining elements are selected

Scenario: a page USES js delayed loading technology to handle all images to improve the user experience, but there are a few images that do not want to be delayed loading, so it is required to single them out.
I studied the API documentation of jQuery and got it right. JQuery is really convenient. Post it here for backup:

<!doctype html>
<html>
 <head>
  <title> Yang guo under the bodhi tree </title>
  <script type="text/javascript" src="http://img.24city.com/js/jquery-1.4.3.min.js"></script>
  <script type="text/javascript">
   $().ready(function(){
    $("div:not([delay='false'])").css("color","#f00"); 
   })
  </script>
 </head>
 <body>
  <div>div 1</div>
  <div delay="false">div 2</div>
  <div>div 3</div>
 </body>
</html>

The code above will exclude div with the additional property "delay" and equal to "false", and then select all the rest div and set it to red.


Related articles: