Добавление функции в jquery - PullRequest
0 голосов
/ 21 февраля 2011

Я пишу функцию с именем 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 ]

2 голосов
/ 21 февраля 2011

Вы можете наблюдать источник функции .val() , которая в основном выталкивает первый элемент из цепочки выбора и работает с ним:

var elem = this[0]
2 голосов
/ 21 февраля 2011

Не нужно использовать .each(), и не нужно его оборачивать.

var formData = this.serializeArray();

Внутри плагина this уже является ссылкой на объект jQuery.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...