gpt4 book ai didi

无法访问 Javascript 变量

转载 作者:行者123 更新时间:2023-11-30 10:03:03 24 4
gpt4 key购买 nike

我有一个将在点击时触发的函数(使用 jQuery)。

我不明白为什么以下内容不起作用并显示未定义

var testFunc = function(event) {
var data = event.data;
var category = data.category;
var action = data.action;
var label = data.label;

console.debug(data);
// prints:
// {'category': 'CCC', 'action': 'AAA', 'label': 'LLL'}

console.debug(data.category);
// prints: undefined

console.debug(category);
// prints: undefined

console.debug(data[category]);
// prints: undefined
};
$(document).ready(function() {
$('.test').on('click', function() {
var jsonData;
try {
jsonData = JSON.parse($(this).data('test'));
}
catch (e) {
// I guess here is the problem:
jsonData = $(this).data('test');
// ..but why JSON.parse doesn't work
}

try {
testFunc({ data: jsonData });
} catch (e) {
}
});
});

HTML:

<a href="about:blank" target="_blank" class="test"
data-test="{'category': 'CCC'}">click event triggered here</a>

如何访问 event.data.category ?

fiddle :http://jsfiddle.net/ytqp45wj/

最佳答案

event.data 是您的 fiddle 中的一个字符串。

那是因为您在 data-test 字段中的 JSON 无效。因此,您在解析异常处理程序时传入异常处理程序,并使用 String 本身。

(根据 http://jsonlint.com/,似乎您不能在 JSON 中使用单引号)

正如别处所指出的,您可以在数据属性中使用双引号来解决问题。

请注意 data[category] 无论如何都不起作用,因此您仍然会得到 undefined

关于无法访问 Javascript 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30576265/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com