21

对我来说,jQuery 最好但未被充分利用的特性之一是自定义选择器。我有一个相当简单的例子,挑选出所有空的文本框:

$(document).ready(function() {
    $.extend($.expr[':'], {
        textboxEmpty: function(el) {
            var $el = $(el);
            return ($el.val() == "") && ($el.attr("type") == "text");
        }
    });
});

并致电:

alert($(":textboxEmpty").length);

我真的想知道,如果其他人有他们编写的自定义选择器的一些有用示例。

当然,我并没有对这些陷阱视而不见,并且意识到它们可能非常慢,因此应该与其他更快的选择器结合使用。如果有任何其他我们应该注意的问题,听听会很有用。

4

3 回答 3

10

我还没有写任何东西,但是James Padolsey很多选择器插件(用于视图中的元素、外部链接、具有特定.data属性的元素等)

于 2009-12-21T15:42:08.610 回答
3

如果您使用的是 ASP.NET,此选择器将帮助您按 id 查找服务器控件:

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

如果你有一个看起来像的服务器控件

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

你可以像这样访问它

$(":asp(txtPhoneNumber)")

编辑

忘记添加 endWith 扩展名

String.prototype.endsWith = function(str) {
    return (this.match(str + '$') == str);
};
于 2009-12-21T15:39:53.187 回答
0

由于 stackoverflow 上建议使用自定义选择器,因此我将在此处添加它们

选择“网址”样式

使用 jQuery 选择空文本输入

于 2010-02-26T16:17:16.443 回答