向jquery添加函数

时间:2011-02-21 20:47:51

标签: jquery function

我正在编写一个名为serializePost的函数。

永远不会在一组对象上调用该函数。 只有一个对象。

因此我的问题是;

我需要this.each,还是只需使用this

这会起作用吗?

(function($) {
    $.fn.serializePost = function() {
        var data = {};
        var formData = $(this).serializeArray();
        for (var i = formData.length; i--;) {
            var name = formData[i].name;
            var value = formData[i].value;
            var index = name.indexOf('[]');
            if (index > -1) {
                name = name.substring(0, index);
                if (!(name in data)) {
                    data[name] = [];
                }
                data[name].push(value);
            }
            else
                data[name] = value;
        }

        return data;
    };
})(jQuery);

2 个答案:

答案 0 :(得分:2)

无需使用.each(),也无需将其包裹起来。

var formData = this.serializeArray();

在插件中,this已经是对jQuery对象的引用。

答案 1 :(得分:2)

你可以observe the source of the .val() function基本上弹出选择链中的第一个元素并使用它:

var elem = this[0]