gpt4 book ai didi

javascript - 使用 json 填充 switch case 数据

转载 作者:搜寻专家 更新时间:2023-11-01 04:41:01 27 4
gpt4 key购买 nike

我正在尝试使用 json 添加 switch case。如何填充数据?

这是预期的输出:

$(".custom-menu li").click(function(){
switch($(this).attr("data-action")) {
// A case for each action.
case "Science": $('.abc:eq(0)').trigger('click',['Zoology']); break;
case "Science": $('.abc:eq(1)').trigger('click',['Botany']); break;
case "Maths": $('.abc:eq(2)').trigger('click',['Geometry']); break;
}
});

这是结构:

$(".custom-menu li").click(function(){
switch($(this).attr("data-action")) {
//looking to populate data here
}
});

jQ

var val;
$.ajax({url: 'subjects.json'}).done(function(d) {
val = d;
$.each(val, function(i, su) {
$('case "'+su[0]+'": $('.content:eq(0)').trigger('click',['+su[1]+']); break;')
.appendTo('data-action'); //How to refer $(this).attr("data-action")
});
});

json:

[ [ "Science", "Zoology"],
[ "Science", "Botany"],
[ "Maths", "Geometry"] ]

最佳答案

不确定是否要使用开关盒。可以使用 for 循环和 if

var jsonString = '[ [ "Science", "Zoology"],[ "Science", "Botany"],[ "Maths", "Geometry"] ]';
var keyValuePairs = JSON.parse(jsonString)
for(var i = 0, l = keyValuePairs.length; i < l; i++)
{
if($(this).attr("data-action") == keyValuePairs[i][0])
$('.abc:eq(' + i + ')').trigger('click',[keyValuePairs[i][1]);
}

Note: keep in mind the this will not evaluate unless it is within the function you specified above

编辑:使用 eval 的切换案例版本。请记住,不赞成使用 eval

var codeToEval = "";
var codeHead = '$(".custom-menu li").click(function(){\
switch($(this).attr("data-action")) {\
// A case for each action.'
var part1 = 'case "', part2 = '": $(".abc:eq("';
var part3 = '").trigger("click",["', part4 = '"]); break;';
var codeFoot = '});'
codeToEval = codeHead;
for(var i = 0, l = keyValuePairs.length; i < l; i++)
{
codeToEval += part1 + keyValuePairs[i][0] + part2 + i +
part3 + keyValuePairs[i][1] + part4;
}
codeToEval += codeFoot;
eval(codeToEval);

这将在全局范围内运行代码但是按照您描述的代码格式构建一个字符串

关于javascript - 使用 json 填充 switch case 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30436382/

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