Jquery 未定义在具有值的元素上循环给定值

Jquery 未定义在具有值的元素上循环给定值,jquery,coffeescript,Jquery,Coffeescript,页面加载完成后,我将查找包含id为“check_status”的元素(数字输入字段)的表格单元格。然后我对它们进行循环(示例简化为console.log) 咖啡脚本 ready = -> $('td').find('#check_status').each (i, el) => console.log el.val() return $(document).ready(ready); $(document).on('page:load', ready); HTML

页面加载完成后,我将查找包含id为“check_status”的元素(数字输入字段)的表格单元格。然后我对它们进行循环(示例简化为console.log)

咖啡脚本

ready = ->
  $('td').find('#check_status').each (i, el) =>
    console.log el.val()
  return

$(document).ready(ready);
$(document).on('page:load', ready);
HTML

<td>
    <div>
        <input type="number" value="1" name="check[status]" id="check_status">
    </div>
</td>
<td>
    <div>
        <input type="number" value="0" name="check[status]" id="check_status">
    </div>
</td>
<td>
    <div>
        <input type="number" value="2" name="check[status]" id="check_status">
    </div>
</td>


$('td').find('check_status')的Console.log提供了我正在查找的所有元素,但是el.val()的Console.log提供了“el未定义”。为什么?Id应该是唯一的。您应该将
id=“check_status”
更改为
class=“check_status”
,并将选择更改为
find('.check_status')
您是否尝试了内置功能的.each() 像这样:

$('td').find('#check_status').each (function (i, el){
  console.log (el.val())
});

罪魁祸首最终是以下(片段):

不太清楚为什么这会导致ready函数中的each失败,但当我改用以下方法时,它工作正常:

$(document).ready ->
    ... function contents ...

ID在文档上下文中必须是唯一的,
el
是DOM节点,而不是jq对象。使用
el.value
$(el.val()
或使用
this
但不使用
el.val()
“el未定义”
哪个浏览器会出现此错误,因为情况并非如此<代码>el已定义,但
val
属性不是彩色的。谢谢,我完全忽略了唯一的ID。我使用的是Rails,这些重复ID是因为每个输入字段都是以单独的形式生成的。我会在ID中添加一些唯一的标识符,然后返回到这里。这是真的,但这与此处的问题无关。
el
是一个DOM节点。仅供参考,OP已经在使用每个循环,使用coffescript syntax,因此,也许他可以使用
$(this).val()
$(document).ready ->
    ... function contents ...