jquery코드최적화(html[++h]) onclick안먹히는현상..도와주세요ㅠ
본문
ajax로 통신해서 동적으로 생성하는문제에 속도를 높이고자 아래소스를 참고하여 html[++h]로
작업하였습니다.
그러나 onclick이 먹질 않네요..
에러내용은 아래와같습니다
Error: Syntax error, unrecognized expression: .html[++h]
at Function.nt.error
..문법상 아무른 문제가 없는데 ㅠ 뭐가문제일까요..ㅜ 도와주십쇼..
var html = [], h = -1;
html[++h] = '<table>';
html[++h] = '<tbody>';
for( var name, i = -1; name = names[++i]; )
{
html[++h] = '<tr><td onclick="shopmove('+wr_id+')">';
html[++h] = name.first;
html[++h] = ' ';
html[++h] = name.last;
html[++h] = '</td><td>';
html[++h] = name.street;
html[++h] = ' ';
html[++h] = '</td></tr>';
}
html[++h] = '</tbody>';
html[++h] = '</table>';
출처: https://kimyhcj.tistory.com/101 [기억과 기록]
답변 2
전부다 이렇게 하면 계속 치환 되잖아요
html[h++] =
처음꺼만 그렇게 쓰고 뒤에는 html[h++] += 로 바꾸셔야죠
그리고 h++ 만 하면 h 값은 여전히 초기값이잖아요 i++ 도 그렇구요
중간에 h = h+1 이 필요하고 for 문에 i++ 도 i=i++ 로 바꿔야죠
i, h 가 거의같은 값인건 같은데 코드가 좀 이상합니다.
제가볼땐 왜 저 문장을 배열형태로 증가시켜서 넣는지 이해를 못하겠습니다.
출력은 어떻게 하시려고..?
제 생각엔..
var str = '';
str += '<table>';
str += '<tbody>';
for( var name, i = -1; name = names[++i]; )
{
str += '<tr><td onclick="shopmove('+wr_id+')">';
str += name.first;
str += ' ';
str += name.last;
str += '</td><td>';
str += name.street;
str += ' ';
str += '</td></tr>';
}
str += '</tbody>';
str += '</table>';
가 더 나아보이는 방법같은데요
그래도 for문장의
name = names[++i];
이문장에서 어떤값들이 names에 있는지가 애매합니다.
!-->