Евгений Привалов: И да, и нет. $ намного более продуманный, он избавит вас от головной боли. querySelector выбирает только первый найденный элемент. querySelectorAll выбирает все подходящие элементы, но возвращает nodeList который итерируется через жопу (то есть надо перебирать либо через for цикл, либо превращать в массив с помощью [].slice.call(nodeList) и потом перебирать через forEach, добавляя к каждому элементу в цикле класс). Ваниллу знать обязательно если вы хотите стать настоящим специалистом, но в тех местах где себе можно позволить безболезненно юзать jQuery - надо юзать jQuery. Ибо "Write less, do more".