将两个自定义Jquery函数放入外部脚本

将两个自定义Jquery函数放入外部脚本,jquery,external,Jquery,External,我有以下两个函数,我需要帮助将它们移动到外部文件中 $.fn.clearSelect = function () { return this.each(function () { if (this.tagName == 'SELECT') this.options.length = 0; }); } $.fn.addItems = function(data) { retu

我有以下两个函数,我需要帮助将它们移动到外部文件中

 $.fn.clearSelect = function () {
        return this.each(function () {
            if (this.tagName == 'SELECT')
                this.options.length = 0;
        });
    }

    $.fn.addItems = function(data) {
        return this.each(function () {
            var list = this;
            $.each(data, function (index, itemData) {
                var option = new Option(itemData.Text, itemData.Value);

                list.add(option);
            });
        });
    }
我需要做什么特别的事吗? 我试图自己做这件事,我想到了以下几点,但我得到了一个“uncaughtsyntaxerror:uncontractedtoken”


谢谢

您最初的方法应该是可行的……只需确保在jQuery本身之后包含该文件即可

另一个选项是扩展
$.fn
,类似于第二次尝试,如下所示:

(function($) {
  $.fn.extend({
    clearSelect: function() {
      return this.each(function() {
        if (this.tagName == 'SELECT') this.options.length = 0;
      });
    },
    addItems: function(data) {
      return this.each(function() {
        var list = this;
        $.each(data, function(index, itemData) {
          var option = new Option(itemData.Text, itemData.Value);
          list.add(option);
        });
      });
    }
  });
})(jQuery);

.

是的,看起来它正在你的测试现场工作。我猜我自己的页面上还有其他错误,导致它抛出一个新的未捕获类型错误:Object#没有“clearSelect”方法。谢谢你的帮助。
(function($) {
  $.fn.extend({
    clearSelect: function() {
      return this.each(function() {
        if (this.tagName == 'SELECT') this.options.length = 0;
      });
    },
    addItems: function(data) {
      return this.each(function() {
        var list = this;
        $.each(data, function(index, itemData) {
          var option = new Option(itemData.Text, itemData.Value);
          list.add(option);
        });
      });
    }
  });
})(jQuery);