为什么我不能使用 javascript 遍历保存在 html 数据选择器上的这个数组?
Why can't I iterate over this array saved on an html data selector with javascript?
我在 haml 中有一个 html 元素,如下所示:
= select_tag 'release_version', options_for_select(major_releases(@releases)), include_blank: 'All', style: 'max-width: 30%', data: { releases: @releases }
@releases
变量是一个活动记录关系对象,里面有一堆发布对象。
在我的咖啡文件中,我有这段代码:
$('#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 is not a function
当我用 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)
我在 haml 中有一个 html 元素,如下所示:
= select_tag 'release_version', options_for_select(major_releases(@releases)), include_blank: 'All', style: 'max-width: 30%', data: { releases: @releases }
@releases
变量是一个活动记录关系对象,里面有一堆发布对象。
在我的咖啡文件中,我有这段代码:
$('#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 is not a function
当我用 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)