为了账号安全,请及时绑定邮箱和手机立即绑定

我想把这个效果改成动态的,就是文本框里输入几,那一行就是几个

我想把这个效果改成动态的,就是文本框里输入几,那一行就是几个

依韵S1 2016-12-20 14:33:44
我想要改成动态的,现在效果做好了,就是动态创建数组那里卡主了,希望大神帮忙解答。<style> ul { overflow:hidden; } li { width:50px; height:20px; text-align:center; line-height:20px; list-style:none; border:1px solid #dedede; float:left; } </style><input type="text" class="js-text" value="" /> <input type="button" class="js-btn" value="确定"/> <div class="list js-list"> <ul></ul> </div><script> $(function(){ var btn = $('.js-btn'); var ul = $('.js-list ul'); var li = $('.js-list ul li'); var text = parseInt($('.js-text').val()); var arr = new Array(); arr[0] = new Array(); arr[1] = new Array(); arr[2] = new Array(); arr[3] = new Array(); arr[4] = new Array(); btn.on('click',function(){ var text = parseInt($('.js-text').val()); var arr = cal(5); var stas = ""; for(var i=0; i<arr.length; i++){ for(var j=0; j<arr.length; j++){ stas += arr[i][j]; } stas +='<br /><br />'; } ul.html(stas); }); var cal = function(len){ var min = 0; var max = len - 1; var row = 0; var col = 0; for(var i=0; i<len*len; i++){ arr[row][col]='<li>'+(i+1)+'</li>'; if(row == min && col < max){ col = col + 1; }else if(row < max && col == max ){ row = row +1; }else if(row == max && col > min ){ col = col - 1; }else if(row > min && col == min){ row = row - 1; } if(row - 1 == min && col == min ){ min = min + 1; max = max - 1; } } return arr; } }) </script>
查看完整描述

1 回答

已采纳
?
蜂之谷

TA贡献564条经验 获得超863个赞

$(function(){
            var btn = $('.js-btn');
            var ul = $('.js-list ul');
            var li = $('.js-list ul li');
            var text = parseInt($('.js-text').val());
 
            btn.on('click',function(){
                var text = parseInt($('.js-text').val());
				
				var arr = new Array();
				for(var i=0;i<text;i++){
					arr[i] = new Array();
				}

                var arr1 = cal(arr,text);
                var stas = "";
 
                for(var i=0; i<arr1.length; i++){
                    for(var j=0; j<arr1.length; j++){
                        stas += arr1[i][j];
                    }
                    stas +='<br /><br />';
                }
                 
                ul.html(stas);
            });
             
            var cal = function(arr,len){
                var min = 0;
                var max = len - 1;
                var row = 0;
                var col = 0;
 
                for(var i=0; i<len*len; i++){
                    arr[row][col]='<li>'+(i+1)+'</li>';
                    if(row == min && col < max){
                        col = col + 1;
                    }else if(row < max && col == max ){
                        row = row +1;
                    }else if(row == max && col > min ){
                        col = col - 1;
                    }else if(row > min && col == min){
                        row = row - 1;
                    }
                    if(row - 1 == min && col == min ){
                        min = min + 1;
                        max = max - 1;
                    }
                }
                return arr;
            }
        })


查看完整回答
1 反对 回复 2016-12-20
  • 依韵S1
    依韵S1
    你好,首先谢谢你的回答。。 如果有时间的话可以回答下我的另一个问题吗。http://www.imooc.com/wenda/detail/338988
  • 1 回答
  • 0 关注
  • 1454 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信