2016-08-26 6 views
1

을 얻을 나는 foreach 루프가 나는 DOM 일부 href(s)을 쓰고 있어요 : 자바 스크립트가 값

var href = document.createElement("a"); 
href.setAttribute("href", uid); 

는 기본적으로 나는 X의 HREF를하고 난 자바 스크립트 함수 해고 할 때 href에 사용자가 클릭.

나는 onclick 이벤트를 추가하려고 노력

...

href.setAttribute("onclick","displayer("+uid+");"); 

UID 변수 : 문자열이고, 나는 분명히 방화범 괜찮다는 것을 알 수 있습니다 경우에도

var uid = String(Nuid); 

(console.log)

하지만 그 링크 방화범를 클릭하면은 말한다 :

wall.php:1 Uncaught ReferenceError: hEIsrMeIN4M5OoLYTlGUQg9paL73 is not defined 

이며 오류가 아니며 <!DOCTYPE HTML>으로 연결됩니다.

"displayer("+uid+");" 

이 생산 :

자바 스크립트 기능이

function displayer(uid){ 
window.alert(uid); 
} 
+1

href.setAttribute ("onclick", "displayer ('"+ "uid +"'); "); – Rayon

+0

값을 작은 따옴표로 묶으십시오. 'href.setAttribute ("onclick ","displayer (' "+ uid + ");"); ' – Pugazh

+1

@Rayon : ** 큰 따옴표 밖의 작은 따옴표 **를 추가했습니다. – Pugazh

답변

5

이 있나요 ... 특별한 아무것도 무효가 SYN이다

displayer(hEIsrMeIN4M5OoLYTlGUQg9paL73); 

왜냐하면 그 문자열은 식별자가 아니기 때문이다. 문자열이므로 따옴표로 묶어야합니다. 이 같은 것 :

"displayer('"+uid+"');" 
1

이이 href.setAttribute("onclick","displayer('"+uid+"');");

0

이것은 유형 오류 때문입니다.

href.setAttribute("onclick","displayer("+uid+");");

같은 앵커 태그가 발생합니다 : <a href="abc123" onclick="displayer(abc123)">

당신은 디스플레이 어 기능에 미리 입력되도록 설정 한 인수하는 문자열이 아닌 런타임에 우리가 찾고있는 것 정의되지 않은 변수.

UID 주변의 문자열 인용 부호를 포함하도록이 행을 업데이트하면 모두 잘되어야합니다. 문자열 값으로 <a href="abc123" onclick="displayer('abc123')">

이 당신의 onclick 함수에 전달되는 :에

href.setAttribute("onclick","displayer('"+uid+"');");

이 발생합니다.

2

addEventListenner을 사용하고 href 속성에서 uid 값을 얻습니다.

function displayer(event) { 
    var uidElem = event.target.getAttribute('href'); 
    alert(uidElem); 
} 
var href = document.createElement("a"); 
href.setAttribute("href", uid); 
href.textContent = "Text Content" 
href.addEventListener('click', displayer) 
+0

아니면 그냥 this.getAttribute ('href');' – Rayon

0

addEventListener을 사용하여 이벤트를 추가하고 속성으로 설정하지 마십시오.

href.addEventListener("click", function() { displayer(uid); }); 

코드가 작동하지 않는 이유는 특성으로 추가하는 것입니다. 이 렌더링 할 때 당신이 그것을 클릭 할 때 그래서,이 변수 hEIsrMeIN4M5OoLYTlGUQg9paL73 아닌 문자열을 찾고

<a href="xxxxxx" onclick="displayer(hEIsrMeIN4M5OoLYTlGUQg9paL73)">... 

로 렌더링합니다.

그래서 무엇을해야합니까? 따옴표를 감싸서 문자열로 만드십시오.

href.setAttribute("onclick","displayer('"+uid+"');"); 

왜이 솔루션이 좋지 않습니까? 먼저 이벤트를 추가하는 적절한 방법은 addEventListener를 사용하는 것입니다. 둘째, uid 내부의 문자열이 ' 또는 "이면 이벤트 처리기가 손상됩니다. 문자열에는 그 안에 문자가 포함될 수 없지만 그렇게되면 문제가됩니다.