아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
훈훈한땅돼지217
훈훈한땅돼지21721.04.11

자바스크립트 댓글 수정중 선택자 질문

여러개의 댓글 중에 특정 하나의 댓글만 수정하려고 하는데요

str +="<p id='reply"+i+"'>"+list[i].reply+"</p>";

댓글 html은 이렇습니다

str +="<button type='button' id='update"+i+"' onclick='update("+list[i].no+")' >수정</button>";

update함수에 해당댓글의 번호를 보냅니다

function update(no){

var reply =document.getElementById(reply+no).innerText;

}

댓글은 p 태그안에 있거든요 그래서 아이디가 reply(n번째댓글) 을 표현하려고(reply+no)이렇게 했는데

이게 잘못되었나봅다 못읽는다고 오류가 나네요

어떻게 replyN번째 id의 innerText를 가져올 수 있나요

55글자 더 채워주세요.
답변의 개수
3개의 답변이 있어요!
  • function update(no){

    var reply =document.getElementById("reply"+no).innerText;

    }

    이렇게 한번 해보시죠.. reply 가 변수도 아닌데.. 그냥 써 주시니까.. 못 찾는 것 같습니다. 문자열로 처리를 해주셔야 될것 같네요.


  • var str = ''; var list=[ {no:0,reply:'reply1'}, {no:1,reply:'reply2'}, {no:2,reply:'reply3'}, {no:3,reply:'reply4'}, {no:4,reply:'reply5'} ]; for(var i=0;i<5;i++){ str +="<p id='reply"+i+"'>"+list[i].reply+"</p><button type='button' id='update"+i+"' onclick='update("+list[i].no+")' >수정</button>"; } function update(no){ var reply =document.getElementById(reply+no).innerText; console.log(reply); }

    질문하신 코드를 대충 정리해보면 위와 같은 상황같은데요.

    update함수안에 작성하신 reply+no 부분의 reply는 변수입니다.

    코드 어디에도 선언되지 않은 변수이기에 찾을 수 없다는 에러가 발생할거예요.

    정상적으로 작동하기 위해서는 reply 부분을 String으로 바꿔주시면 됩니다.

    var reply =document.getElementById("reply"+no).innerText;


  • 탈퇴한 사용자
    탈퇴한 사용자21.04.12

    안녕하세요

    아래처럼 변경해서 해 보시기 바랍니다.

    이 부분을 제외하고는 다른 데는 이상 없어 보입니다.

    function update(no) { // reply를 문자열로 처리했습니다. var reply = document.getElementById('reply' + no).innerText; }