Как добавить новые методы в объект jQuery?

Есть ли способ добавить методы к объектам jQuery?

Например, у меня есть объект jQuery

a = $('div')

Мне бы хотелось, чтобы каждый объект, который был назначен таким образом, имел бы особый метод (doSomething()), поэтому я мог бы вызвать его как

a = $('.foo')
a.doSomething()

b = $('.bar')
b.doSomething()

Ответы

Ответ 1

Вы должны добавить свою функцию в пространство имен $.fn. Обратите внимание, что внутри функции this будет ссылаться на объект jQuery, а не на объект DOM.

$.fn.doSomething = function () {
    this.css('color', 'red');
};

$('#retk').doSomething();

jsFiddle Demo

Прочитайте о написании плагинов jQuery для получения дополнительных рекомендаций.

Ответ 2

добавить его как

$.fn.doSomething = function(data){
    // data is the argument passed to doSomething
    return this.each(function(){
       var elem = $(this);
       //perform operation on elem
       // like to change background color use
       elem.css('background-color','red');

    });
}