我试图通过传递从数据属性中分割出来的 KEY 来获取数组/对象的值。
请看一下整个场景。
第一个 - 将 data-*
传递给元素
<a data-action='{"content":"content.login"}' ... >val</a>
第二 - 获取数据属性值
var da = ele.data("action");
var c = da.content;
var c0 = c.split('.')[0];
var c1 = c.split('.')[1];
第四个 - 数组/obj
var content = {
login : "..."
};
第三 - 尝试获取数组的val
console.log(c0[c1]);
结果 - 未定义
有人可以给我解决方案,以便通过简单地调用 c0[c1]
来记录 content.login
的确切值吗?
最佳答案
您可以通过将字符串传递给窗口来调用该变量:window[c0][c1]
var content = {
login : "awesome"
};
var data = $('div').data('data');
var c = data.content;
var c0 = c.split('.')[0];
var c1 = c.split('.')[1];
console.log(c0, c1);
alert(window[c0][c1]);
// translates to window['content']['login'] => calls content.login
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div data-data='{"content":"content.login"}'></div>
注意:如果您处于函数闭包中,则可以使用 this
而不是 window
。
关于javascript - 通过引用对象和键作为字符串来获取数组/对象值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28086698/