17

有没有办法向 jQuery 的对象添加方法?

例如,我有 jQuery 对象

a = $('div')

我希望这样分配的每个对象都有特定的方法(doSomething()),所以我可以像这样调用它

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

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

2 回答 2

20

您必须将函数添加到$.fn命名空间。请注意,在函数内部,this将引用 jQuery 对象,而不是 DOM 对象。

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

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

​jsFiddle 演示

请阅读有关编写 jQuery 插件的更多指南。

于 2012-06-05T09:59:00.597 回答
1

像这样添加

$.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');

    });
}
于 2012-06-05T09:58:53.107 回答