0

Доброго времени суток!

Только начал изучать js и интересует решение такой вот задачи.

Имеются ссылки <a class="link" href="http://1234.ru"></a>, при несоответствии проверяемого адреса нужно заменить ссылки. Написал такую вот функцию, но замена не происходит, в то время как редирект такого типа срабатывает

document.location.href="http://http://www.google.com"
function linkreplace(){
    var link = document.getElementsByClassName('link');
    var url = "http://yandex.ru";
    var regV = /yandex\.ru/gi;
    var result = url.match(regV);

    if (result) {
        console.log('1');
    } else {
        document.getElementsByClassName('link').href = 'http://google.com';
    }
}
linkreplace();
Grundy
  • 81,538

1 Answers1

0

document.getElementsByClassName возвращает массив. надо вот так:

document.getElementsByClassName('link')[0].href = 'http://google.com';

Если таких ссылок много, я бы сделал так

function linkreplace(link){
    var url = link.href;
    var regV = /yandex\.ru/gi;
    var result = url.match(regV);
    if (result) {
        console.log(url, 'Not replaced');
    } else {
        console.log(url, 'Replaced');
        link.href = 'http://google.com';
    }
    console.log(link);
}

var links = document.getElementsByClassName('link'); for(var link of links) linkreplace(link);

<a class='link' href='http://yandex.ru'></a>
<a class='link' href='http://google.ru'></a>
<a class='link' href='http://test.ru'></a>
Darth
  • 13,217