获得Jquery插件内的函数返回值 40C

我是菜鸟。改造了一个Jquery插件,大致结构如下:

(function ($) {
"use strict";

//构造函数
var Combobox = function (element, options) {
    this.$element = element;
    ...
};

//方法
Combobox.prototype = {

    constructor: Combobox

    , load: function (keyword) {
       ...
    }

    ...
    , getvalue: function () {
        return this.$element.val();
    }

};


$.fn.combobox = function (option) {
    return this.each(function () {
        var $this = $(this)
          , data = $this.data('combobox')
          , options = typeof option == 'object' && option;
        if (!data) { $this.data('combobox', (data = new Combobox(this, options))); }
        if (typeof option == 'string') { data[option](); }
    });
};

//默认值
$.fn.combobox.defaults = {
    menu: '<ul class="typeahead-long dropdown-menu"></ul>'
  , item: '<li><a href="#" class="dropdown-item"></a></li>'
  , datasource: ''
};

})(jQuery);

在Html中是这样调用的:

$(document).ready(function () { $('.combobox').combobox(); });

它工作的很好。除了这个需求:
我想在html通过JavaScript中获得getvalue函数的返回值:
var value = $("#sn").combobox('getvalue');
alert(value);

alert总是显示[object Object]。

请教高手:我哪里做错了?
能否给个详细的解答,叩首!!!

2个回答

alert() 打印对象的时候就会出现[object Object]。 你可以用Json.stringify()转一下,看一下打印的是什么。或者console.log() 更加简单明了~

alert()是没有办法直接展示对象即Object值的,如对象结果为{"key1":"value1"},如果你想看得到的结果,可以转换为对象字符串,也就是
var obj = $("#sn").combobox('getvalue');
alert(JSON.stringify(obj));//提示框查看
或者
console.log(obj);//F12,调试框 console中查看结果
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐