2014-03-04 2 views
0

이 코드가 : 이제자바 스크립트 - 링크의 'onclick'을 동적으로 변경 하시겠습니까?

<div class="pButton"><a href="javascript:;" onclick="parent.window.close()"></a> 

를, 내가 링크의 CALSS는 'pButton'없는 것을 알 수 있습니다 .. 링크에 ID 또는 클래스를 추가 할 수 없습니다 (이 코드를 편집 할 수 없습니다 'pButton'는 것입니다 링크가 내부 div 클래스) 및 Jquery를 사용하지 않고, 내가 onclick을 변경할 수있는 방법이 있나요?

onclick="javascript:OpenWindow('popup.htm');" 

?

참고 : ID 또는 클래스에 링크를 제공 할 수 없으므로 getElementById를 사용할 수 없습니다. 줄에 아무 것도 할 수 없습니다.

<div class="pButton"><a href="javascript:;" onclick="parent.window.close()"></a> 

또한 IE8을 사용하고 있습니다. 이름 pButton에 하나의 요소, 또는 첫 번째 경우

+1

당신이 찾고있는 생각 : http://stackoverflow.com/a/15097337/3378621 –

답변

1

,이 시도 :

document.getElementsByClassName('pButton')[0].children[0].onclick = "javascript:OpenWindow('popup.htm');" 

IE8 지원을 사용

document.querySelectorAll('.pButton')[0].children[0].onclick = "javascript:OpenWindow('popup.htm');" 

이전 IE8보다 ?? .. . :

var all = context.getElementsByTagName("div"); /* for catching all div's */ 
for (i = 0; i < all.length; i++) { 
    if (all[i].className && all[i].className == "pButton") { 
     all[i].children[0].onclick = "javascript:OpenWindow('popup.htm');" 
    } 
} 
+0

당신의'querySelector'가 고정되어 있습니다 - 당신은''요소를 찾고있었습니다 : p –

+0

하하 ... thanks – LGSon

+0

또한 .children [0 ]'는'.childNodes [0]'보다 더 신뢰할 만합니다. 왜냐하면 요소의 시작과 대상 노드 사이의 단순한 새로운 줄조차도'childNodes'를 엉망으로 만들 것이기 ​​때문입니다. –

관련 문제