자바스크립트 댓글 수정중 선택자 질문
여러개의 댓글 중에 특정 하나의 댓글만 수정하려고 하는데요
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를 가져올 수 있나요
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;
안녕하세요
아래처럼 변경해서 해 보시기 바랍니다.
이 부분을 제외하고는 다른 데는 이상 없어 보입니다.
function update(no) { // reply를 문자열로 처리했습니다. var reply = document.getElementById('reply' + no).innerText; }