this в jquery в коде
Есть код(на картинке) Вопрос такой, почему в 4 строчке используется $(this),почему,например,нельзя использовать .bookmark вместо него,это разве не одно и тоже? В данном контексте this-элемент по которому кликнули, но событие задействуется при клике на .bookmark же,или нет?
Ответы (2 шт):
Вы сами ответили на свой вопрос, по сути. $(this) - указывает на конкретный элемент по которому кликнули, в то время как .bookmark указывает на все элементы с указанным классом и в итоге $(this).toggleClass... будет переключать класс у конкретного элемента по которому кликнули, в то время как $(.bookmark).toggleClass... - переключит класс у всех элементов с этим селектором
Замечу, что $(.bookmark).click - под капотом делает цикл по всем элементам с указанным селектором и вешает клик на все элементы с селектором, а не вешает событие на один конкретный элемент
Ответ в таком простом коде
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>
