Bec*_*cky 5 javascript jquery json
我正在尝试使用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;
}
});
Run Code Online (Sandbox Code Playgroud)
这是结构:
$(".custom-menu li").click(function(){
switch($(this).attr("data-action")) {
//looking to populate data here
}
});
Run Code Online (Sandbox Code Playgroud)
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")
});
});
Run Code Online (Sandbox Code Playgroud)
JSON:
[ [ "Science", "Zoology"],
[ "Science", "Botany"],
[ "Maths", "Geometry"] ]
Run Code Online (Sandbox Code Playgroud)
不确定您要使用开关盒。可以使用 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]);
}
Run Code Online (Sandbox Code Playgroud)
注意: 请记住,
this除非它在您上面指定的函数内,否则不会评估
编辑: 使用 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);
Run Code Online (Sandbox Code Playgroud)
这将在全局范围内运行代码,但以您所描述的代码的格式构建一个字符串
| 归档时间: |
|
| 查看次数: |
1404 次 |
| 最近记录: |