使用data属性在javascript(jQuery)

时间:2017-09-22 10:17:02

标签: javascript jquery object

尝试根据数据属性获取对象的值。 虽然我无法用正确的词典解释它,但设置示例应该更清楚:



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;
&#13;
&#13;

使用这种方式返回undefined。 任何人都可以帮助解决这个问题谢谢!

1 个答案:

答案 0 :(得分:2)

您必须使用方括号来访问带有变量的JSON对象的key。因此,请将代码更改为console.log(obj[dk]);

&#13;
&#13;
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;
&#13;
&#13;

当您使用console.log(obj.dk)时,它实际上会在dk中查找名为obj的密钥。

见:

&#13;
&#13;
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;
&#13;
&#13;