I agree with Vanilla!
By abstracting away many things that do not need any abstraction anymore, you punish every user that uses a modern browser with extra kilobytes to load and to parse. If you use a service such as https://polyfill.io/, you can deliver only the fixes to browsers that need them.
For me, the only reason to use jQuery, is because of its plugin ecosystem. Which is quite sad, because you can achieve the same functionality without jQuery. However, mostly there are dependency free alternatives (See http://microjs.com/ for a list). I found, that if you find a module you need in a sophisticated package repository such as npm, chances are, they cared about proper ways of embedding the module into your project.
There are a common pitfalls
It would be unfair to say that when you use jQuery, you start writing spaghetti code.
However, jQuery encourages you to use IDs for a single case scenario. This is what you learn when you start out.
They do that at the very beginning of the homepage, where they show demos of what jQuery can do.
The documentation works in a similar manner. Everything is applied for only one element for that one case.
I can't tell how often I see beginners applying the same functionality to
jQuery also started the trend of starting to touch the DOM only after it is completely loaded. Which is not necessary in most cases.
That's it for now.