jQuery coffeescript 中的简单 each/while 循环无法按预期工作

jQuery simple each/while loop in coffeescript does not work as expected

我一直在尝试几种方法来解决这个问题。基本上我必须以完全相同的方式修改几个下拉菜单的内容。所以我虽然我可以使用 each 或一段时间来变得更干,但我在 coffeeScript 方面没有那么多经验。

这是要重构的 'working' undry 代码:

$('#someId').val('someVal')
$('#someOtherId').val('someVal')

这是我的第一次尝试:

arr = ['someId', 'someOtherId']
$.each arr, (i, el) =>
  $('#'+el).val('someVal')

这是我的第二次尝试:

arr = ['someId', 'someOtherId']
length = arr.length
counter = 0
while counter < length
 $('#' + arr[counter]).val('someVal')
 counter ++

出于某些原因,我一直在尝试对每个方法进行多种变体,我可以断言我可以 console.log 选择器并且它 returns 正确的值,但是当涉及到更改值,代码似乎没有按预期工作。

感谢任何帮助。

我不是咖啡脚本用户。 但是查看您的代码,您似乎使用 jquery 来迭代数组。 我假设你的意思是使用 Array.forEach 代替.. 例如

arr = ['someId', 'someOtherId']
arr.forEach (el) =>
    $('#'+el).val('someVal')

尝试:

arr = ['someId', 'someOtherId']
for value, index in arr
    $("##{value}").val('someVal')

或者如果您不关心索引:

arr = ['someId', 'someOtherId']
for value in arr
    $("##{value}").val('someVal')