What useful custom jQuery selectors have you written?

↘锁芯ラ 提交于 2019-11-27 00:30:00

问题


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.


回答1:


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)




回答2:


If you are using ASP.NET, this selector will help you find server controls by id:

$.expr[":"].asp = function(a, i, m) {
    return $(a).attr('id') && $(a).attr('id').endsWith(m[3]);
};

If you had a server control that looked like

<asp:TextBox runat="server" ID="txtPhoneNumber" />

You could access it like this

$(":asp(txtPhoneNumber)")

EDIT

Forgot to add the endsWith extension

String.prototype.endsWith = function(str) {
    return (this.match(str + '$') == str);
};



回答3:


As custom selectors are suggested on stackoverflow I'll add them here

Select 'URL' style

Selecting empty text input using jQuery



来源:https://stackoverflow.com/questions/1940574/what-useful-custom-jquery-selectors-have-you-written

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!