Получить все элементы кроме текущего jQuery
У нас есть 5 дивов с классом class
<div class="class"></div>
<div class="class"></div>
<div class="class"></div>
<div class="class"></div>
Задаю всем тегам одинаковый текст по события клик:
$('body').on('click', '.class', function () {
$('.class').html('fjenekn');
});
Как можно обойти стороной текущий элемент, на который я кликнул, чтобы не применять к нему изменения?
Ответы (3 шт):
Автор решения: Алексей Шиманский
→ Ссылка
Используйте метод not
$('body').on('click', '.class', function () {
$('.class').not($(this)).html('fjenekn');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>
<div class="class">1</div>
<div class="class">2</div>
<div class="class">3</div>
<div class="class">4</div>
Автор решения: CbIPoK2513
→ Ссылка
Оставлю такой же вариант но на JS
let items = document.querySelectorAll('.class');
[].forEach.call(items, function(e,i,items) {
e.addEventListener('click', function() {
console.clear();
[].forEach.call(items, function(e) {
if(e !== this) {
console.info(e.innerText);
}
}, this);
});
});
<div class="class">1</div>
<div class="class">2</div>
<div class="class">3</div>
<div class="class">4</div>
Автор решения: teran
→ Ссылка
Если речь идет о соседних дивах, то просто siblings()
$(".class").click(function(){
$(this).siblings().html('txt');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="class">1</div>
<div class="class">2</div>
<div class="class">3</div>
<div class="class">4</div>