为什么我不能用javascript迭代保存在html数据选择器上的这个数组?

Why can't I iterate over this array saved on an html data selector with javascript?

本文关键字:选择器 数组 数据 html 不能 javascript 迭代 存在 保存 为什么      更新时间:2023-09-26

我在haml中有一个html元素,看起来像这样:

= select_tag 'release_version', options_for_select(major_releases(@releases)), include_blank: 'All', style: 'max-width: 30%', data: { releases: @releases }

@releases变量是一个活动的记录关系对象,有一堆发布对象。

在我的coffefile中,我有这样的代码:

$('#release_version').on 'change', ->
  selVal = $('#release_version').val()
  release_html_selector = document.getElementById('release_version')
  release_objects = release_html_selector.dataset.releases
  filtered_releases = release_objects.filter((item) ->
    ///^#{selVal}///.test item.version
  )

当代码试图执行时,我得到这个错误:

application.js:35397 Uncaught TypeError: release_objects。Filter不是一个函数

当我用alert检查元素时,对象看起来像这样:

[{
    "id":398,
    "kb_release_id":"vwu3jiwk86",
    "released_on":"2009-05-15T00:00:00.000Z",
    "version":"2.1.1",
    "created_at":"2016-09-15T20:36:42.831Z",
    "updated_at":"2016-09-15T20:36:42.831Z"},
    {},
    {},
etc....]

这是一个可迭代的数据结构。我是不是漏掉了什么?

数据可能是JSON字符串而不是数组

尝试解析为json

release_objects = JSON.parse(release_html_selector.dataset.releases)