我有简单的JS(jquery)代码,我想通过所有三个嵌套数组运行。 现在它只执行第一个嵌套数组([16,10,11]然后停止)。 我已经读过“for”循环可能有效,但我试过并失败了:[
任何人都有能力解决这个问题吗?我会很感激!
$(function(){
var cat = [[16, 10, 11],[15, 10, 11],[36, 10, 11]];
$('li#hcategory_' + cat[0][0] + ' ul.level2 > li:gt(' + cat[0][1] +')').hide();
var l = $('li#hcategory_' + cat[0][0] + ' .level2 > li').length;
if (l > cat[0][2]) {
$('li#hcategory_' + cat[0][0] + 'span.show_more_button').show();
} else {
$('li#hcategory_' + cat[0][0] + 'span.show_more_button').hide();
}
$('li#hcategory_16 .show_more_button').click(function () {
$('li#hcategory_' + cat[0][0] + ' ul.level2 > li:gt(' + cat[0][1] +')').show('slow');
});
});
答案 0 :(得分:0)
您可以使用Array#forEach()
进行迭代。
forEach()
方法每个数组元素执行一次提供的函数。
$(function () {
var cat = [[16, 10, 11], [15, 10, 11], [36, 10, 11]];
cat.forEach(function (c) {
$('li#hcategory_' + c[0] + ' ul.level2 > li:gt(' + c[1] + ')').hide();
var l = $('li#hcategory_' + c[0] + ' .level2 > li').length;
if (l > c[2]) {
$('li#hcategory_' + c[0] + 'span.show_more_button').show();
} else {
$('li#hcategory_' + c[0] + 'span.show_more_button').hide();
}
$('li#hcategory_16 .show_more_button').click(function () {
$('li#hcategory_' + c[0] + ' ul.level2 > li:gt(' + c[1] + ')').show('slow');
});
});
});
答案 1 :(得分:0)
您可以首先对主数组使用双嵌套forEach()
方法,对每个嵌套数组使用第二个方法,如:
var cat = [[16, 10, 11],[15, 10, 11],[36, 10, 11]];
cat.forEach(function(v,i){
//here v represents the values of the first level,
//assuming it contains only arrays you can run a nested
console.log(v);
v.forEach(function(vv, ii){
// here you can access booth arrays respectively calling them
console.log(v);
conosole.log(vv);
});
});