#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 для вашего кода jQuery2. Мне определенно нужно это прочитать. Спасибо, что поделились!
3. Воспользуйся
e.target.querySelector(".pjt").href
. Не нужно работать с атрибутом, просто используйте API элемента!
Ответ №1:
Это случается с большинством из нас, использующих getAttribute
ванильный JS
e.target.querySelector(".pjt").getAttribute('href')