【问题标题】:How to add new methods to the jQuery object?如何向 jQuery 对象添加新方法?
【发布时间】:2012-06-09 08:18:43
【问题描述】:

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

例如,我有 jQuery 对象

a = $('div')

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

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

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

【问题讨论】:

    标签: javascript jquery-plugins methods jquery


    【解决方案1】:

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

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

    jsFiddle Demo

    请阅读writing jQuery plugins 了解更多指南。

    【讨论】:

      【解决方案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');
      
          });
      }
      

      【讨论】:

      • 我只想指出这会影响 any 创建的 jQuery 对象。
      • @jAndy 更新了答案,请您检查并确认它现在是否正确。
      • .css() 方法在这里不是一个很好的例子,使用.each() 毫无意义。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-25
      • 2013-09-23
      • 2023-03-10
      • 1970-01-01
      • 2014-10-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多