Ответ 1
Я еще ничего не написал, но Джеймс Падолси имеет отличная коллекция плагинов селектора (для элементов, которые видны для внешних ссылок, для элементов со специфическим свойством .data
и т.д.)
Для меня одной из лучших, но недоиспользуемых функций jQuery является пользовательский селектор. У меня есть довольно тривиальный пример этого, чтобы выделить все текстовые поля, которые пусты:
$(document).ready(function() {
$.extend($.expr[':'], {
textboxEmpty: function(el) {
var $el = $(el);
return ($el.val() == "") && ($el.attr("type") == "text");
}
});
});
И для вызова:
alert($(":textboxEmpty").length);
Мне было интересно, действительно, если бы у кого-нибудь были некоторые полезные примеры пользовательских селекторов, которые они написали.
Я, конечно, не ослеплю от этих ошибок, и понимаю, что они могут быть довольно медленными и, как таковые, должны сочетаться с другими более быстрыми селекторами. Было бы полезно услышать, есть ли какие-либо другие проблемы, о которых мы должны знать.
Я еще ничего не написал, но Джеймс Падолси имеет отличная коллекция плагинов селектора (для элементов, которые видны для внешних ссылок, для элементов со специфическим свойством .data
и т.д.)
Если вы используете 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)")
ИЗМЕНИТЬ
Забыл добавить концы с расширением
String.prototype.endsWith = function(str) {
return (this.match(str + '$') == str);
};
В качестве пользовательских селекторов рекомендуется использовать stackoverflow. Я добавлю их здесь.