Wpis z mikrobloga

Mirki, zacząłem uczyć się #javascript
Mam 4 elementy menu i 4 sekcje.
Mam krótki kod w #jquery do skrolowania do sekcji po naciśnięciu menu :

var menu = $("a[href^='#']");

menu.click(function() {

event.preventDefault();

target = $(this).attr('href');

$('html, body').animate({scrollTop: $(target).offset().top}, 1000);

});


Chciałbym przepisać go na czysty #js .
W/w $(this) rozumiem jako obiekt, na rzecz którego została wywołana funkcja, tzn menu (??).
Dlatego this zamieniłem na menu=[i]:

var menu = document.querySelectorAll("a[href^='#']");

for (i = 0; i menu[i].addEventListener('click', function() {

event.preventDefault();

var target = menu[i].attr('href');

//poniżej wstępnie jquery

$('html, body').animate({

scrollTop: $(target).offset().top

}, 1000);

});

}


Wyrzuca mi błąd:

Uncaught TypeError: Cannot read property 'attr' of undefined


Jeśli zostaje $(this) to działa.
Możecie mi pomóc zrozumieć czym jest w końcu te $(this), tzn co powinienem zamiast niego wpisać?
#kiciochpyta
  • 13
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach