2016-09-24 2 views
0

Я нахожусь на сайте, где я хотел бы захватить все ссылки href и щелкнуть по нему. Я знаю, что смогу это сделать. document.getElementById('yourLinkID').click(); как бы то ни было, проблема в том, что у href dosen't есть id, только заголовок. Могу ли я как-то щелкнуть по всему href по его названию?JavaScript href без ID

+0

Вы не смогли добавить свой код? –

+1

Возможный дубликат [Получение элемента по пользовательскому атрибуту с помощью JavaScript] (http://stackoverflow.com/questions/6267816/getting-element-by-a-custom-attribute-using-javascript) –

ответ

0

Вы можете использовать document.querySelectorAll() с переключателем a[href], чтобы получить все элементы, имеющие <a>href набор атрибутов, или [href] извлечь все элементы, имеющие href набор атрибутов; for..of цикл для перебора Collection

var hrefs = document.querySelectorAll("a[href]"); 
for (let elem of hrefs) { 
    // do stuff 
    console.log(elem.href); 
} 
+0

Спасибо, я заметил, что могу просто сделайте это. 'var hrefs = document.querySelectorAll ('[title = title_name"]'); 'Как бы то ни было, он просто щелкнет первым, чем перерыв, но это не должно быть трудно решить. –

1

Доступ к document.links массив будет решение, которое вы ищете.

Оттуда щелчок по нему приведет к тому, что страница будет перемещаться в сторону своей цели, а сценарий прекратит выполнение. Если вы должны щелкнуть по ним все, что вы можете сделать, это выполнить их цикл и установить цель iframe с атрибутом ссылки href.

0

использование querySelectorAll:

document.querySelectorAll("[title=foo]") 

Который даст вам массив. итерации по массиву, если ваша цель - щелкнуть по всем ссылкам. Очевидно, нажатие ссылки перенаправит вас на эту страницу и приостановит выполнение скрипта.

грязное решение было бы использовать:

selectedElement.setAttribute('target', '_blank'); 

где selectedElement является селектор Линка. Это делает URL открытым в новой вкладке.

0

Не знаю, почему вы хотели бы это сделать, поскольку каждый из <a href... будет активирован, и после первого он будет в браузере, чтобы решить, что произойдет.

var aList = document.getElementsByTagName('a'); 
 
var i, max = aList.length; 
 
for(i=0;i<max;i++) { 
 
    aList[i].click(); 
 
}
<a href="#" onclick="console.log('a1');return false">Hello</a> 
 
<a href="#" onclick="console.log('a2');return false">world</a>

0

Вы можете попробовать следующее решение, это будет цикл по каждому href и нажмите его.

$('a[href]').each(function() 
{ 
    $(this).trigger('click'); 
}); 
Смежные вопросы