Javascript - динамически менять «клик» ссылки? [Дубликат]

0

У меня есть этот код:

<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.

Теги:
onclick

1 ответ

1

Если только один элемент с именем 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');"
    }
}
  • 0
    Исправил ваш querySelector для вас - вы искали элемент <pButton> : p
  • 0
    Также обратите внимание, что .children[0] более надежен, чем .childNodes[0] , потому что даже простая новая строка между началом элемента и целевым узлом испортит childNodes .
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню