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

ajax를 이용해 반복적인 작업을 하고싶습니다. 채택완료

루벤 5년 전 조회 2,887

</p>

<p><ul id="list">

<li data-id="1"><span id="number"></span>번게시물 : <div id="data-area"></div></li>

<li id="list" data-id="2"><span id="number"></span>번게시물 : <div id="data-area"></div></li>

<li id="list" data-id="3"><span id="number"></span>번게시물 : <div id="data-area"></div></li>

</ul></p>

<p>

<script src="<a href="http://code.jquery.com/jquery-1.11.2.min.js"></script>" target="_blank" rel="noopener noreferrer">http://code.jquery.com/jquery-1.11.2.min.js"></script></a>

<script>

$("#list li").each(function() {

var articleNum = $(this).attr('data-id');

    $.ajax({

        url : 'myurl' + articleNum,

        dataType: 'json',

        success: function(data) {

            var value1 = data.data.value;

            var num = data.data.no;

            $(this).children("#number").append(num);

            $(this).children("#data-area").append(vlue1);

            }

    });

});

</script></p>

<p>

 

 

위 소스처럼 li의 data-id값으로 ajax를 이용해 반복적으로 해당 값을 가져와서 출력하고싶은데요,

하나의 소스로는 가능한데 반복적으로 출력하는 걸 모르겠네요..

어떻게하면 각 li의 data-id값으로 각각 ajax를 실행시켜 해당 li내에 있는 div나 span영역에 값을 가져올 수 있을까요?

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

답변 1개

채택된 답변
+20 포인트
5년 전

id="number" --> class="number" 

id="data-area" --> class="data-area"  :::: class로 변경, 이름이 같은 id가 1개 이상 있어서는 안됨

li에도 id를 같은 이름으로 붙여놓았네요

 

$("#list li").each(function(index) { <----- index추가

아래처럼 변경

     $(".number").eq(index).append(num); 
     $(".data-area").eq(index).append(value1); ::: 이곳에 $(this)를 놓으면 #list li가 아님

 

    alert( $(this).attr('data-id') ) 를 이 위치에 넣어보면 값이 나오지않는 다는 것을 알 수 있을겁니다

 

 

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

답변에 대한 댓글 1개

루벤
5년 전
정말 감사합니다. 잘되네요! 연휴에 답변 달아주셔서 감사합니다.

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

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

로그인