2014-03-04 68 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'。 –