Потому что вы сразу начинаете писать при помощи абстракций, не понимая, как работает js внутри этих абстракций.
И многие методы нативного js просто не работают в jquery, просто потому, что это jquery объект, а не нативный.
// Получить DOM элемент body в jquery
$(document.body)
// Получить высоту
$(document.body).clientHeight // не будет работать
$(document.body).length //будет 1
// В консоли выдаст массив, но на деле это не просто массив
$(document.body)
// Получить DOM элемент body нативно
document.body
// Получить высоту
document.body.clientHeight // Будет работать
// Ну будет работать
document.body.length //undefined
И вы должны понимать это, что бы потом не доставать всех тупыми вопросами, а почему не работает!!!!!
Находя в интернете некие решения для своих задач, которые написаны на нативном js и внедряя их в свою кодовую jquery базу, вы можете столкнуться с проблемой, что код не работает. А что бы заработал, нужно понять, как его адаптировать в jquery. Тоже самое и наоборот.
P.S. jQuery отличная библиотека, просто она со временем устаревает марально, т.к. все отлично научились писать на нативном js. Раньше js стагнировал, а потом резко полетел вверх и jquery стал в большинстве случаев не нужен. В большинстве своём она сыграла большую роль при создании новых методов работы с DOM
Вы может просто погуглить это
https://www.google.com/search?q=you+don%27t+need+j...
Это подборка статей о том, как заменить jquery методы на нативный js код, что бы для себя понять, что не всё так плохо в нативном js