Не удается получить значение href дочернего элемента

#javascript #jquery

Вопрос:

Будучи так долго избалованным jQuery, теперь я хотел бы переписать эту строку в ванильном javascript:

 let slug = $(this).children().find('.pjt').attr('href');
 

Что я пробовал (среди прочего), так это:

  const goToPage = (e) => {
     var slug = e.target.querySelector(".pjt").attr("href");
    console.log("slug is:", slug);
    //window.location.href = slug;
   };
 

Но я получаю эту ошибку:

 Uncaught TypeError: e.target.querySelector(...).attr is not a function
 

Как я могу это исправить?

Комментарии:

1. Используйте атрибут getAttribute вместо attr . Проверьте, что вам может не понадобиться jQuery , чтобы найти (ванильные) эквивалентные функции JS для вашего кода jQuery

2. Мне определенно нужно это прочитать. Спасибо, что поделились!

3. Воспользуйся e.target.querySelector(".pjt").href . Не нужно работать с атрибутом, просто используйте API элемента!

Ответ №1:

Это случается с большинством из нас, использующих getAttribute ванильный JS

 e.target.querySelector(".pjt").getAttribute('href')