对我来说,jQuery最好但尚未充分利用的功能之一是custom selector。我有一个相当简单的例子,挑选出所有空的文本框:
$(document).ready(function() {
$.extend($.expr[':'], {
textboxEmpty: function(el) {
var $el = $(el);
return ($el.val() == "") && ($el.attr("type") == "text");
}
});
});
致电:
alert($(":textboxEmpty").length);
我真的想知道,如果其他人有他们写过的自定义选择器的一些有用的例子。
我当然不会对这些陷阱视而不见,并且意识到它们可能非常慢,因此应该与其他更快的选择器结合使用。听听我们是否应该注意其他问题会很有用。
答案 0 :(得分:10)
我还没有写任何内容,但是James Padolsey有一个great collection个选择器插件(对于视图中的元素,对于外部链接,对于具有特定.data
属性的元素,等)
答案 1 :(得分: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)")
修改强>
忘记添加endsWith扩展名
String.prototype.endsWith = function(str) {
return (this.match(str + '$') == str);
};
答案 2 :(得分:0)