jQuery在coffeescript中简单的each/while循环没有像预期的那样工作

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

本文关键字:工作 while coffeescript 简单 each jQuery 循环      更新时间:2023-09-26

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

下面是要重构的"工作"代码:

$('#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选择器并且它返回正确的值,但是当涉及到更改值时,代码似乎不像预期的那样工作。

尝试:

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

或者如果你不关心索引就直接:

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

我不是一个咖啡脚本用户。但看看你的代码,它看起来像你使用jquery迭代数组。我假定您的意思是使用Array。forEach相反. .如:

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