1

在咖啡脚本中,我试图弄清楚数组中是否包含某些内容。但似乎无法弄清楚正确的语法。有没有办法做到这一点而不必迭代它们?

谢谢,

  if $(this).val() is in ["needs_cover","comatose"]
    $("#head_count").hide()
  else
    $("#head_count").show()
4

2 回答 2

6

只需放下is

if $(this).val() in ["needs_cover","comatose"]
    $("#head_count").hide()
  else
    $("#head_count").show()

这将转换为以下 JavaScript:

var _ref;

if ((_ref = $(this).val()) === "needs_cover" || _ref === "comatose") {
  $("#head_count").hide();
} else {
  $("#head_count").show();
}
于 2013-09-12T08:17:51.830 回答
0

如果这是一个常见的用例,您可以编写一个函数,它还允许您编写一个更紧凑的例程,如下所示:

hideShowFn = (valSelector, hideShowElSelector, compareArr) ->
    if $(valSelector).val() in compareArr then return $(hideShowElSelector).hide()
    $(hideShowElSelector).show()

我更喜欢执行上述操作,因为它会使代码稍微扁平化。这是我的偏好。

您可以像这样调用该函数:

hideShowFn this, '#head_count', ['needs_cover', 'comatose']
于 2013-09-12T18:35:26.880 回答