this в jquery в коде

Есть код(на картинке) Вопрос такой, почему в 4 строчке используется $(this),почему,например,нельзя использовать .bookmark вместо него,это разве не одно и тоже? В данном контексте this-элемент по которому кликнули, но событие задействуется при клике на .bookmark же,или нет?

введите сюда описание изображения


Ответы (2 шт):

Автор решения: Алексей Шиманский

Вы сами ответили на свой вопрос, по сути. $(this) - указывает на конкретный элемент по которому кликнули, в то время как .bookmark указывает на все элементы с указанным классом и в итоге $(this).toggleClass... будет переключать класс у конкретного элемента по которому кликнули, в то время как $(.bookmark).toggleClass... - переключит класс у всех элементов с этим селектором


Замечу, что $(.bookmark).click - под капотом делает цикл по всем элементам с указанным селектором и вешает клик на все элементы с селектором, а не вешает событие на один конкретный элемент

→ Ссылка
Автор решения: Anton Shchyrov

Ответ в таком простом коде

jQuery(function($) {
  $(".btn").click(function() {
    console.log("$(this)");
    $(this).each(function(idx, el) {
      console.log(el.innerText);
    });
    
    console.log(".btn");
    $(".btn").each(function(idx, el) {
      console.log(el.innerText);
    });
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button class="btn">1</button>
<button class="btn">2</button>
<button class="btn">3</button>
<button class="btn">4</button>

→ Ссылка