Jquery函数Getvars“重建”

时间:2011-08-06 22:13:23

标签: jquery function

我想“重建”一个简短的片段:

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 个答案:

答案 0 :(得分:1)

我假设你想要一个接受元素作为参数的函数(这里是一个jQuery对象):

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

用法:

var values = getValues($('input'));

答案 1 :(得分:1)

在第一个代码中,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();
}