Javascript 将JS函数转换为coffeescript,并将jQuery.map和选择器作为参数
我正在将一些JS代码重构为CoffeeScript,但函数有问题 这就是工作的JS:Javascript 将JS函数转换为coffeescript,并将jQuery.map和选择器作为参数,javascript,jquery,coffeescript,Javascript,Jquery,Coffeescript,我正在将一些JS代码重构为CoffeeScript,但函数有问题 这就是工作的JS: $(".comformt_QA").change(function(){ var array = $(".comformt_QA").map(function() { return $(this).val(); }).toArray(); $("[name='comfort_qualitative_assessment.global_comfort_index']").val(
$(".comformt_QA").change(function(){
var array = $(".comformt_QA").map(function() {
return $(this).val();
}).toArray();
$("[name='comfort_qualitative_assessment.global_comfort_index']").val(
calc_qualitative_assessment_array(array)
).change();
});
我的目标是将此snipplet用作函数,并能够调用:
class_to_calc_qualitative_assessment_array(".comformt_QA", "[name='comfort_qualitative_assessment.global_comfort_index']");
以下是咖啡脚本:
@class_to_calc_qualitative_assessment_array = (class_param, target) ->
array = []
$(class_param).change ->
array = $(class_param).map( ->
$(this).val()
)
$(target).val(calc_qualitative_assessment_array(array)).change()
数组总是空的。。。
想法?如果您将咖啡代码编译为Javascript,结果将是:
this.class_to_calc_qualitative_assessment_array = function(class_param, target) {
var array;
array = [];
$(class_param).change(function() {
return array = $(class_param).map(function() {
return $(this).val();
});
});
return $(target).val(calc_qualitative_assessment_array(array)).change();
};
Coffeescript将@
传输到JS中的this
关键字。此外,函数中没有返回值-这导致coffeescript返回函数的最后一个赋值
也许这是一种可行的方法:
class_to_calc_qualitative_assessment_array = (class_param, target) ->
array = []
$(class_param).change ->
array = $(class_param).map( ->
$(@).val()
)
return
$(target).val(calc_qualitative_assessment_array(array)).change()
return
这看起来像这样:
var class_to_calc_qualitative_assessment_array;
class_to_calc_qualitative_assessment_array = function(class_param, target) {
var array;
array = [];
$(class_param).change(function() {
array = $(class_param).map(function() {
return $(this).val();
});
});
$(target).val(calc_qualitative_assessment_array(array)).change();
};
谢谢你的回答。但是代码仍然无法工作:/I我怀疑
$(class\u param).change
和$(class\u param).map
是否正常工作