테스트 사이트 - 개발 중인 베타 버전입니다

배열에 클릭할때마다 추가 채택완료

그누보드초보이용자 6년 전 조회 4,727

var menu = new Array(4);

빈배열 5개 공간만들어 두고

 

1 2 3 4 5 6 7 이라는 메뉴가 있다고 가정하고 

클릭한 순서가 3 2 1 4 5 이라면 

순서대로 배열에 값이  3 2 1 4 5이렇게 들어가게 할수있을까요?

 

제가 하면 클리하면 하지만 [ , , , ,5 ]  <- 여기에 5들어간 부분만 바뀌고.. 추가 추가가 안되고있습니다..

 

메뉴라서 메뉴클릭하면 페이지 이동하면서 새로 고침이 되고 있긴합니다..

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트
루미집사

아래의 코드로 테스트해보세요.

 

1. 클릭한 순서대로 배열에 추가한다.

2. 클릭한 값이 이미 존재한다면 삭제하고 배열의 마지막에 추가한다.

 

</p>

<p><button type="button" class="aaa" style="width:60px;">1</button></p>

<p><button type="button" class="aaa" style="width:60px;">2</button></p>

<p><button type="button" class="aaa" style="width:60px;">3</button></p>

<p><button type="button" class="aaa" style="width:60px;">4</button></p>

<p><button type="button" class="aaa" style="width:60px;">5</button></p>

<p><button type="button" class="aaa" style="width:60px;">6</button></p>

<p><button type="button" class="aaa" style="width:60px;">7</button></p>

<p><button type="button" class="aaa" style="width:60px;">8</button></p>

<p> </p>

<p><script></p>

<p>var arr = []; // 클릭한 값을 담을 배열을 전역변수로 선언</p>

<p>$(document).ready(function() {</p>

<p>  $(".aaa").click(function() {</p>

<p>    //var ix = $(this).index();</p>

<p>    var v = $(this).text();</p>

<p>    makeArr(arr, v);</p>

<p>    console.log(arr);</p>

<p>  });</p>

<p>});</p>

<p> </p>

<p>function makeArr(array, val) {</p>

<p>     var chk = array.indexOf(val);</p>

<p>     if (chk==-1){ </p>

<p>          array.push(val); // 값이 없다면 배열의 마지막에 추가</p>

<p>     }else{ </p>

<p>          array.splice(chk, 1); //삭제하고</p>

<p>          array.push(val); // 마지막에 추가한다.</p>

<p>     }</p>

<p>}</p>

<p></script></p>

<p>

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

6년 전

메뉴클릭하면 페이지 이동하면서 <---이렇게 페이지가 이동 해버리는데 배열값이 남아 잇을 수가 없죠

메뉴 링크에서 값을 전달하도록 링크를 만들고 head부분에서 넘어온 값을 php session 또는 쿠키로

저장하는 방법으로 하세요

세션 이나 쿠키 값을 읽어서 자바스크립트 배열로 만들면 됩니다

 

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

</p>

<p><script>

$(function() {

    //var menus = [];

    $("a").on("click", function(e) {

        e.preventDefault();

        $(this).parent().clone().insertAfter($("#result"));

        //menus.unshift($(this).data("idx"));

        //console.log(menus);

    });

});

</script>

<ol>

    <li><a href="#" data-idx="1">1111</a></li>

    <li><a href="#" data-idx="2">22</a></li>

    <li><a href="#" data-idx="3">33333</a></li>

    <li><a href="#" data-idx="4">4444</a></li>

    <li><a href="#" data-idx="5">555555</a></li>

    <li><a href="#" data-idx="6">666</a></li>

</ol>

<ol id="result"></ol></p>

<p>

메뉴를 이용하실 거면 이런 식으로만 해도 되지 않을까 싶네요.

배열에 집어넣으실 경우엔 위 주석 부분 해제하시면 될 것 같습니다.

http://exam.dothome.co.kr/temp/wrid_327813.html

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인