尝试根据数据属性获取对象的值。 虽然我无法用正确的词典解释它,但设置示例应该更清楚:
var obj = {
key1: "hello",
key2: "Hi",
key3: 1,
key4: 2
}
$(".key").each(function() {
var dk = $(this).data('key');
console.log(obj.dk);
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="key" data-key="key1"></div>
<div class="key" data-key="key2"></div>
<div class="key" data-key="key3"></div>
<div class="key" data-key="key4"></div>
&#13;
使用这种方式返回undefined。 任何人都可以帮助解决这个问题谢谢!
答案 0 :(得分:2)
您必须使用方括号来访问带有变量的JSON对象的key
。因此,请将代码更改为console.log(obj[dk]);
var obj = {
key1 : "hello",
key2 : "Hi",
key3 : 1,
key4 : 2
}
$(".key").each(function() {
var dk = $(this).data('key');
console.log(obj[dk]);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="key" data-key="key1"></div>
<div class="key" data-key="key2"></div>
<div class="key" data-key="key3"></div>
<div class="key" data-key="key4"></div>
&#13;
当您使用console.log(obj.dk)
时,它实际上会在dk
中查找名为obj
的密钥。
见:
var obj = {
key1 : "hello",
key2 : "Hi",
key3 : 1,
key4 : 2,
dk: 6
}
$(".key").each(function() {
var dk = $(this).data('key');
console.log(obj.dk);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="key" data-key="key1"></div>
<div class="key" data-key="key2"></div>
<div class="key" data-key="key3"></div>
<div class="key" data-key="key4"></div>
&#13;