2014-03-04 67 views
0

我有這樣的代碼:Javascript - 動態改變'onclick'鏈接?

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

現在,我不能修改這個代碼(我不能一個ID或類添加到鏈接..注意到鏈接CALSS不是「pButton」,「pButton」是div的類,鏈接裏面)和沒有使用jquery,有沒有辦法讓我改變onclick,以便

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

注意:我無法使用getElementById,因爲我無法給鏈接一個ID或類。我無法做任何事情:

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

此外,我使用的是IE8。

+1

我認爲你正在尋找這樣的: http://stackoverflow.com/a/15097337/3378621 –

回答

1

如果只有一個名爲pButton元素,或者是第一次,試試這個:

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

IE8的支持,使用方法:比IE8

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

年紀大了,?? .. :

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

哈哈...謝謝 – LGSon

+0

另外,請注意'.children [0 ]'比'.childNodes [0]'更可靠,因爲即使元素開始和目標節點之間的一條簡單的新線路也會混淆'childNodes'。 –