Функция Jquery Getvars "перестроить" - PullRequest
0 голосов
/ 07 августа 2011

Я хотел бы "перестроить" короткий фрагмент:

jQuery.fn.getCheckboxVal = function(){
    var vals = [];
    var i = 0;
    this.each(function(){
        vals[i++] = jQuery(this).val();
    });
    return vals;
}

, например, так:

function getvar() {
       var vals = [];
    var i = 0;
    this.each(function(){
        vals[i++] = $(this).val();
    });
    return vals; 
}

Кто-нибудь может помочь получить "второй" работы?(Ссылка на полный фрагмент выше: http://trentrichardson.com/2009/01/08/getting-a-list-of-checkbox-values-with-jquery/)

Спасибо:)

Ответы [ 2 ]

1 голос
/ 07 августа 2011

В первом коде ключевое слово this указывает на объект jQuery, для которого вызывается метод, поэтому вам придется заменить его на объект jQuery во втором коде:

function getvar(selector) {
  var vals = [];
  var i = 0;
  $(selector).each(function(){
    vals[i++] = $(this).val();
  });
  return vals; 
}

Пример использования:

var values = getvar('input:checked');

Вы также можете использовать метод map, чтобы упростить его:

function getvar(selector) {
  return $(selector).map(function(){
    return $(this).val();
  }).get();
}
1 голос
/ 07 августа 2011

Я предполагаю, что вам нужна функция, которая принимает элементы в качестве параметра (здесь объект jQuery):

function getValues($elements) {
    return $elements.map(function() {
        return $(this).val();
    }).get();
}

Использование:

var values = getValues($('input'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...