Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 您编写了哪些有用的自定义jQuery选择器?_Javascript_Jquery_Custom Selectors - Fatal编程技术网

Javascript 您编写了哪些有用的自定义jQuery选择器?

Javascript 您编写了哪些有用的自定义jQuery选择器?,javascript,jquery,custom-selectors,Javascript,Jquery,Custom Selectors,对我来说,jQuery最好但未被充分利用的特性之一是。我有一个非常简单的例子,可以挑出所有空的文本框: $(document).ready(function() { $.extend($.expr[':'], { textboxEmpty: function(el) { var $el = $(el); return ($el.val() == "") && ($el.attr("type") == "tex

对我来说,jQuery最好但未被充分利用的特性之一是。我有一个非常简单的例子,可以挑出所有空的文本框:

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

alert($(":textboxEmpty").length);
我想知道,真的,是否有其他人有一些他们编写的自定义选择器的有用示例


当然,我并不是对这些缺陷视而不见,我意识到它们可能相当缓慢,因此,应该与其他更快的选择器结合使用。了解我们是否还有其他问题需要注意将非常有用。

如果您使用的是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" />
编辑

忘记添加带有扩展名的endsWith

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

我还没有编写任何选择器插件,但有一系列选择器插件(用于视图中的元素、外部链接、具有特定
.data
属性的元素等)

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


没有,但这是一个很好的扩展,谢谢你发布它。我从来都不需要编写自定义选择器,因为jQuery已经很强大了enough@Josh:如果您了解Sizzle(jQuery的选择器引擎)的这个特性,我不太确定。喜欢它!不太清楚函数参数上的i和m是用于什么。我认为
i
是用于索引的,但不要引用我的话。鬼鬼祟祟是正确的,我是用于索引的。m返回一个数组,在本例中该数组将返回[“:asp(txtPhoneNumber)”、“asp”、“,”和“txtPhoneNumber”],因此我使用m[3]来获取传入的id为什么ASPNET需要一个不同的基于id的选择器?是不是.aspx文件中的ID与生成的.html文件中的结果ID不同?@James Wiseman:
String.prototype.endsWith = function(str) {
    return (this.match(str + '$') == str);
};