jQuery相当于JavaScript函数

时间:2012-06-19 19:46:36

标签: javascript jquery html

我正在尝试比较项目中jQuery和JavaScript之间的差异,但我似乎无法弄清楚如何重写一个函数,因为我不确定我应该如何引用jQuery对象。我将一个字符串连接起来作为AJAX参数传递。这是JavaScript:

function getSelectValues(select) {
  var values = "";
  var sep = "";
  for(var i = 0; i < select.length; i++) {
    if (select.options[i].selected) {
      values += sep + (select.options[i].value);
      sep = ", ";
    }
  }
  return values;
}

我认为以下可能是jQuery的等价物,传入$(this),但我似乎无法让它工作。如果没有选择任何内容,我希望它返回空字符串,但它会返回null。

function getSelectValues(select) {
  var values = "";
  var sep = "";
  $("option:selected", select).each(function(){
    values += sep + ($(this.val()));
    sep = ", ";
  });
  return values;
}

我也尝试过:

$(select).each(function(){
  $("option:selected", this).each(function(){
    values += sep + ($(this.val()));
    sep = ", ";
  });
});

这也不起作用。

4 个答案:

答案 0 :(得分:2)

您可以使用.val()进行选项选项多次启用:

.val()方法主要用于获取表单元素的值,例如input,select和textarea。对于<select multiple="multiple">元素,.val()方法返回包含每个选定选项的数组;如果未选择任何选项,则返回null。

http://api.jquery.com/val/

答案 1 :(得分:1)

对于select元素$(select).val(),返回所选值(对于单选)或数组或null以进行多选。我假设你有一个多选的问题,所以你可能想要:

var vals = $(select).val();
return vals ? vals.join(', ') : "";

答案 2 :(得分:0)

使用each时,this是原始HTML元素。在调用jQuery方法之前,需要包装jQuery。

答案 3 :(得分:0)

您没有阅读任何文档或tutorials,是吗?

$.extend({
    myFunc : function( someArg ) {
        /* …function code… */
    }
});
$.myFunc( args );

请参阅:http://jquery-howto.blogspot.de/2009/11/create-callback-functions-for-your.html