javascript - 如何使用 jQuery data() 访问对象数组中的所有对象
问题描述
我正在尝试使用 jQuery 的data()选择器(在 Freemarker 模板中)将 yaml 数据传递给 JS。因此,虽然我能够传递“浅”键/值对,但传递对象/hasmaps 的数组/序列并不能真正完成这项工作,我得到一个字符串,该字符串不能使用或转换为常规数组对象:
自由标记
<#local xAxis=20 />
<#local data=content.data /> // A yaml sequence containing two hashmaps
<#local config='{"xAxis": ${xAxis}, "data": "${data}"}' /> //quotations for parsing to stop config becoming a string
<div id="" data-js-config='${config}'>
JS
const config = $("[data-js-config]").data("js-config")
console.log(config)
结果是数据数组变成了我不能使用的字符串:
{xAxis: 20, data: "[{key1=value1},{key2=value2}]"}
我希望将数据字符串转换为带有键/值对对象的常规数组,就像将 xAxis 转换为键/值对一样。
将不胜感激任何帮助,谢谢!
解决方案
content.data 不能是
[{key1=value1},{key2=value2}]
但需要
[{"key1":"value1"},{"key2":"value2"}]
然后它会工作
const config = $("[data-js-config]").data("js-config")
console.log(config)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id=""
data-js-config='{"xAxis": 20, "data": [{"key1":"value1"},{"key2":"value2"}]'></div>
如果没有,您是否需要 ${data} 周围的双引号,并且您需要解析 config.data 字符串
推荐阅读
- javascript - iframe 文件上传器提交到新标签
- f# - 使用附加字段扩展记录
- sql - 删除 SQL Server 2008 的 concat 和 IIF 函数
- python - 在 jupyter notebook 中使用 bash_profile 变量
- .net - .NET 不支持请求的安全协议
- python - 我做了一个登录系统,但是当我运行它时,它出现了一个意想不到的结果,你能修复它或改进它吗?
- python - Ansible 奇怪的错误:错误是:'str object' 没有属性'ip'
- java - 使用 MockServer 测试 HttpRequest 的主体时如何忽略命名空间
- java - 在 apache ctakes 中添加自定义编写器
- javascript - 如何使用javascript从下拉菜单中将默认输出文本设置为选定的选项