У меня есть этот код:
<div class="pButton"><a href="javascript:;" onclick="parent.window.close()"></a>
Теперь я не могу отредактировать этот код (я не могу добавить идентификатор или класс в ссылку.. Обратите внимание, что ссылки 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.
Если только один элемент с именем pButton, или он первым, попробуйте это:
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 */
for (i = 0; i < all.length; i++) {
if (all[i].className && all[i].className == "pButton") {
all[i].children[0].onclick = "javascript:OpenWindow('popup.htm');"
}
}
querySelector
для вас - вы искали элемент <pButton>
: p
.children[0]
более надежен, чем .childNodes[0]
, потому что даже простая новая строка между началом элемента и целевым узлом испортит childNodes
.