[소스] 자바스크립트 배열, for문을 이용한 리스트 동적 생성
2023.04.14
자바스크립트 배열, for문을 이용한 리스트 동적 생성
데이터가 되는 부분은 배열, 스킨에 해당되는 부분은 공통이므로 for문을 이용해 돌렸다.
조건 1) 리스트가 몇개든 4개만 show, 나머진 hide 버튼에 개수.
http://relation.co.kr/images_board/board_system_publishing/307/index.html
데이터가 되는 부분은 배열, 스킨에 해당되는 부분은 공통이므로 for문을 이용해 돌렸다.
조건 1) 리스트가 몇개든 4개만 show, 나머진 hide 버튼에 개수.
http://relation.co.kr/images_board/board_system_publishing/307/index.html
<script>
var $sec_total = 5+1;
var $ls_sec = "";
for(let $k=1; $k<$sec_total; $k++){
window[ "items_"+$k]= "";
$ls_sec += "<article><div class="ls_area items_"+$k+""></article>";
}
$("#ls_area").html( $ls_sec );
/*
var items_1 ="";
var items_2 ="";
var items_3 ="";
var items_4 ="";
*/
let arry = [
{gbn:"1", brd:"GOODS SHOP", gname:"1GOODS_NAME", prd:"10,000 <span>won</span>", img:"", path:"#" },
{gbn:"1", brd:"GOODS SHOP", gname:"GOODS_NAME", prd:"10,000 <span>won</span>", img:"", path:"#" },
{gbn:"1", brd:"GOODS SHOP", gname:"GOODS_NAME", prd:"10,000 <span>won</span>", img:"", path:"#" },
{gbn:"1", brd:"GOODS SHOP", gname:"GOODS_NAME", prd:"10,000 <span>won</span>", img:"", path:"#" },
{gbn:"1", brd:"GOODS SHOP", gname:"GOODS_NAME", prd:"10,000 <span>won</span>", img:"", path:"#" },
{gbn:"1", brd:"GOODS SHOP", gname:"GOODS_NAME", prd:"10,000 <span>won</span>", img:"", path:"#" },
{gbn:"1", brd:"GOODS SHOP", gname:"GOODS_NAME", prd:"10,000 <span>won</span>", img:"", path:"#" },
{gbn:"1", brd:"GOODS SHOP", gname:"GOODS_NAME", prd:"10,000 <span>won</span>", img:"", path:"#" },
{gbn:"2", brd:"GOODS SHOP", gname:"2GOODS_NAME", prd:"10,000 <span>won</span>", img:"", path:"#" },
{gbn:"2", brd:"GOODS SHOP", gname:"GOODS_NAME", prd:"10,000 <span>won</span>", img:"", path:"#" },
{gbn:"2", brd:"GOODS SHOP", gname:"GOODS_NAME", prd:"10,000 <span>won</span>", img:"", path:"#" },
{gbn:"2", brd:"GOODS SHOP", gname:"GOODS_NAME", prd:"10,000 <span>won</span>", img:"", path:"#" },
{gbn:"2", brd:"GOODS SHOP", gname:"22GOODS_NAME", prd:"10,000 <span>won</span>", img:"", path:"#" },
{gbn:"2", brd:"GOODS SHOP", gname:"22GOODS_NAME", prd:"10,000 <span>won</span>", img:"", path:"#" },
{gbn:"3", brd:"GOODS SHOP", gname:"3GOODS_NAME", prd:"10,000 <span>won</span>", img:"", path:"#" },
{gbn:"3", brd:"GOODS SHOP", gname:"GOODS_NAME", prd:"10,000 <span>won</span>", img:"", path:"#" },
{gbn:"3", brd:"GOODS SHOP", gname:"GOODS_NAME", prd:"10,000 <span>won</span>", img:"", path:"#" },
{gbn:"3", brd:"GOODS SHOP", gname:"GOODS_NAME", prd:"10,000 <span>won</span>", img:"", path:"#" },
{gbn:"3", brd:"GOODS SHOP", gname:"GOODS_NAME", prd:"10,000 <span>won</span>", img:"", path:"#" },
{gbn:"3", brd:"GOODS SHOP", gname:"GOODS_NAME", prd:"10,000 <span>won</span>", img:"", path:"#" },
{gbn:"3", brd:"GOODS SHOP", gname:"GOODS_NAME", prd:"10,000 <span>won</span>", img:"", path:"#" },
{gbn:"4", brd:"GOODS SHOP", gname:"4GOODS_NAME", prd:"10,000 <span>won</span>", img:"", path:"#" },
{gbn:"4", brd:"GOODS SHOP", gname:"GOODS_NAME", prd:"10,000 <span>won</span>", img:"", path:"#" },
{gbn:"4", brd:"GOODS SHOP", gname:"GOODS_NAME", prd:"10,000 <span>won</span>", img:"", path:"#" },
{gbn:"4", brd:"GOODS SHOP", gname:"GOODS_NAME", prd:"10,000 <span>won</span>", img:"", path:"#" },
{gbn:"4", brd:"GOODS SHOP", gname:"GOODS_NAME", prd:"10,000 <span>won</span>", img:"", path:"#" },
{gbn:"5", brd:"GOODS SHOP", gname:"4GOODS_NAME", prd:"10,000 <span>won</span>", img:"", path:"#" },
{gbn:"5", brd:"GOODS SHOP", gname:"GOODS_NAME", prd:"10,000 <span>won</span>", img:"", path:"#" },
{gbn:"5", brd:"GOODS SHOP", gname:"GOODS_NAME", prd:"10,000 <span>won</span>", img:"", path:"#" },
{gbn:"5", brd:"GOODS SHOP", gname:"GOODS_NAME", prd:"10,000 <span>won</span>", img:"", path:"#" },
{gbn:"5", brd:"GOODS SHOP", gname:"GOODS_NAME", prd:"10,000 <span>won</span>", img:"", path:"#" },
];
let arry_total = arry.length;
for(let i= 0; i<arry_total; i++){
var $gbn = arry[i]['gbn']; /* console.log("gbn : "+ $gbn); */
if( !window[ 'count_'+$gbn ] ){
window[ 'count_'+$gbn ] = 0;
if( $gbn > 1 ){
var $pre_gbn = $gbn-1;
if( window[ 'count_'+$pre_gbn ] > 4 ){
var $hide_total = window[ 'count_'+$pre_gbn ] - 4;
window[ 'items_'+$pre_gbn ] += "</div><div class="btn_area"><div class="btn off" data-btnno=""+$pre_gbn+"" data-htotal=""+$hide_total+"">열려라~"+$hide_total+"</div></div>";
}
}
}
if( window[ 'count_'+$gbn ] == 4 ){
window[ 'items_'+$gbn ] += "<div class="hide_area hide_area_"+$gbn+"">";
window[ 'items_h_'+$gbn] = 0;
}
window[ 'items_'+$gbn ] += "<div class="item_area"><a href=""+arry[i]['path']+""><div class="img_box"></div><div class="infor"><ul><li class="brd">"+arry[i]['brd']+"</li><li class="name">"+arry[i]['gname']+"</li><li class="pri">"+arry[i]['prd']+"</li></ul></div></a></div>";
window[ 'count_'+$gbn ]++;
if( window[ 'items_h_'+$gbn] == true){ window[ 'items_h_'+$gbn]++ }
if( window[ 'count_'+$gbn ] > 4 && i == arry_total-1 ){
var $hide_total2 = window[ 'count_'+$gbn ] - 4;
window[ 'items_'+$gbn ] += "</div><div class="btn_area"><div class="btn off" data-btnno=""+$gbn+"" data-htotal=""+$hide_total2+"">열려라~"+$hide_total2+"</div></div>";
}
}
/*
console.log("count_1 :"+count_1);
console.log("count_2 :"+count_2);
console.log( "items_1: "+items_1 );
console.log( "items_2: "+items_2 );
$(".items_1").html(items_1);
$(".items_2").html(items_2);
$(".items_3").html(items_3);
$(".items_4").html(items_4);
$(".items_4").html(items_5);
*/
for(var $j=1; $j<$sec_total; $j++){
$(".items_"+$j).html( window["items_"+$j] );
console.log("check "+$j );
}
$(".btn").click( function(){
let $btn_no = $(this).attr("data-btnno");
let $htotal = $(this).attr("data-htotal");
if( $(".hide_area_"+$btn_no).css("display") == "none"){
$(".hide_area_"+$btn_no).slideDown();
$(this).removeClass("off");
$(this).addClass("on");
$(this).text("닫아라~");
}else{
$(".hide_area_"+$btn_no).slideUp();
$(this).removeClass("on");
$(this).addClass("off");
$(this).text("열려라~"+$htotal);
}
});
</script>
작성자
꿘쓰
작성일
2023.04.14
