Как привязать события клик к ссылки. DOM

381
23 апреля 2017, 00:40

Добрый день. Как привязать события клик к ссылки номер 2, когда первая ссылка динамическая, то есть она появляется и исчезает рандомно.

Этот скрипт должен работать с DOM, нет возможности работать с кодом.

<div class="a">
    <a class="href" href="#">1</a> //Рандомная ссылка
    <a class="href" href="#">2</a>
    <a class="href" href="#">3</a>
</div>
var el = document.getElementsByClassName('href')[0]; el.click();

Я бы посчитал количество ссылок. Если ссылок стало на одну больше, выполнил условие if, к нулю прибавил единицу. Но бывают случаи, когда ссылок стает гораздо больше, а мне необходимо привязать событие к определенной ссылки.

Answer 1

Если только название уникально, то можно искать по названию.

var link = null 
  , links = document.getElementsByTagName('a') 
  , searchText = 'Бить врагов '; 
for (var i = 0; i < links.length; i++) { 
  if (links[i].textContent === searchText) { 
    link = links[i]; 
    break; 
  } 
} 
if (link) { 
  console.log('Ссылка найдена.'); 
  //link.click(); 
} 
else { 
  console.log('Ссылка не найдена.'); 
}
<a class="flhdr" href="#">Не бить врагов</a> 
<a class="flhdr" href="?wicket:interface=:2:actionPanel:damageRandomEnemyLink‌​::ILinkListener::&am‌​p;action=14928018000‌​48"><img class="internalIcon" alt="" src="/images/icons/attack.png" border="0">Бить врагов </a>

READ ALSO
подскажите как изменить функцию?

подскажите как изменить функцию?

Это изменение GET параметров в url

323
Клиент для REST-сервиса

Клиент для REST-сервиса

Необходим работающий пример приложения - клиента REST-сервиса

377
Youtube API, как запросить все видео с канала?

Youtube API, как запросить все видео с канала?

Собственно как? Использую NodeJS, и библиотеку "request" https://github

648
Узнать на какой адрес xhr отправил запрос

Узнать на какой адрес xhr отправил запрос

ЗдравствуйтеВозможно ли узнать на какой адрес был отправлен запрос, не зная какой именно объект его отправляет? Да это можно посмотреть в консоли,...

309