In this blog post, I show how to create a custom pseudo selector with jQuery. This is useful in a few situations when you can avoid writing a long function that would perform the same action as the pseudo selector.
In the code below, we create the :nocontent
selector which can be used to select all matching elements that are empty.
$.expr[":"].nocontent = function(obj, index, meta, stack) { // obj - is a current DOM element // index - the current loop index in stack // meta - meta data about your selector // stack - stack of all elements to loop // Return true to include current element // Return false to explude current element return !$.trim($(obj).text()).length && !$(obj).children().length; }; // Credit: http://stackoverflow.com/a/7572288/3602355
Example
The top div
has a green background because it’s not empty and the bottom div
is red because it is empty.
See the Pen Create Custom Pseudo Selector With jQuery by Mike Doubintchik (@allurewebsolutions) on CodePen.