使用值循环元素赋值不定义

时间:2015-11-22 14:17:54

标签: jquery coffeescript

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

的CoffeeScript

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')的Console.log.find('#check_status')给了我所需的所有元素,但是el.val()的console.log给出了“el未定义”。为什么呢?

3 个答案:

答案 0 :(得分:0)

ID应该是唯一的。您应该将id="check_status"更改为class="check_status",将选择更改为find('.check_status')

答案 1 :(得分:0)

您是否尝试过 .each(),其中包含功能? 像这样:

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

答案 2 :(得分:0)

罪魁祸首最终成为了这个(来自Rails 4: how to use $(document).ready() with turbo-links的片段):

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

ready = ->
    ... function contents ...

不太确定为什么这使得ready函数中的每一个都失败了,但是当我改为使用时它工作正常:

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