For me, one of the best, yet under-utilised feature of jQuery is the custom selector. I have a fairly trivial example of this, to pick out all text boxes that are empty:
$(document).ready(function() {
$.extend($.expr[':'], {
textboxEmpty: function(el) {
var $el = $(el);
return ($el.val() == "") && ($el.attr("type") == "text");
}
});
});
And to call:
alert($(":textboxEmpty").length);
I was wondering, really, if anyone else had some useful examples of custom selectors they have written.
I am, of course, not blind to the pitfalls of these, and realise that they can be quite slow and, as such, should be combined with other faster selectors. It would be useful to hear if there are any other problems we should be aware of.
I haven't written any, yet James Padolsey has a great collection of selector plug-ins (for elements in view, for external links, for elements with a specific .data
property, etc)