我是菜鸟。改造了一个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]。
请教高手:我哪里做错了?
能否给个详细的解答,叩首!!!
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中查看结果