2011-12-27 4 views
1

내가 내 페이지에 링크를 생성하려고하지만이 코드를 끊긴지고 어떤 이유에서입니다내에서 자바 스크립트와 링크를 작성하고

data = data + "<li><a href='#' onclick='History.pushState({state:null},'article,"+rtndata[j].id+"','article'); return false;'>" + rtndata[j].title + "</a></li>"; 

rtndata [j]가 .ID가있는 ID 번호와 rtndata는 [j는] .title 모두가 DB에서 가져온되는 제목이지만 브라우저에서 렌더링 할 때 그것은

<a false;'="" return="" article,41','article');="" onclick="History.pushState({state:null}," href="#">Newsflash 5</a> 

그래서 난 렌더링하기 위해 무엇을 실제로

<a href="#" onclick="History.pushState({state:null},'article,41','article'); return false;'>"Newsflash 5</a>; 
012입니다된다

아무도 도와 줄 수 있습니까?

+1

당신은 온 클릭 내에서 '문자를 이스케이프해야 = "성명서. – omnidan

+0

그러면 onclick = \ 'History.pushState ({state : null},'article '+ rtndata [j] .id +' ','article '); false를 반환하고 '\> 올바른가요? –

+0

그래,하지만 롭 W. 이미 이미 아주 잘 설명했다. – omnidan

답변

1

onclick 속성의 값은 작은 따옴표로 묶습니다. 이 때문에 속성 내에 따옴표를 사용해야하는 경우 " 또는 &quot; (값만 사용) 중 하나를 사용해야합니다. 자바 스크립트 문자열을 큰 따옴표 (") 내에 포함되어

때문에, 큰 따옴표는 사용하기 전에 탈출해야 할 : "....onclick='...\"....'....";은.

코드를 해결하려면, 나는 큰 따옴표 (탈출) 대신 작은 따옴표를 사용하기로 결정했습니다 :

data = data + "<li><a href='#' onclick=\"History.pushState({state:null},'article,"+rtndata[j].id+"','article'); return false;\">" + rtndata[j].title + "</a></li>"; 

자세한 조 테이블 :

JS string marker  Attribute marker  Valid attribute value markers 
     "    \"     ' &quot; 
     "    '     \" &quot; 
     '    "     \' &quot; 
     '    \'     " &quot; 
+0

완벽하게 감사드립니다. –