Помогите доработать код .each(function()
Есть который перебирает все .items и если их больше 4 шт то добавялем класс "view_hide" - это нужно для того что скрыть опции если их больше четырех... ВСе отлично работает когда на странице один такой товар с такими классами .options_no_buy > .items
Если товаров больше тогда код отрабатывает для первого товара верно.. а для всех остальных всем классам "items" он добавляет класс "view_hide" , т.е он один раз для первого товара посчитал, а дальше всем добавляет класс "view_hide"
max_view = 4;
d = 0;
jQuery(".options_no_buy > .items").each(function() {
d += 1;
if(d > max_view) {
jQuery(this).addClass("view_hide");
}
});
Помогите... плиз.. Нужно что бы код работало для каждого блока отдельно.. Например
<div class="options_no_buy ">
<div class="items">1</div>
<div class="items">2</div>
<div class="items">3</div>
<div class="items">4</div>
<div class="items view_hide">5</div>
<div class="items view_hide">6</div>
</div>
<div class="options_no_buy ">
<div class="items">1</div>
<div class="items">2</div>
<div class="items">3</div>
<div class="items">4</div>
<div class="items view_hide">5</div>
<div class="items view_hide">6</div>
<div class="items view_hide">7</div>
<div class="items view_hide">8</div>
<div class="items view_hide">9</div>
</div>
|
nikoshot,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
.view_hide {
background-color: rgba(0, 255, 255, 1)
}
</style>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(function() {
let max_view = 4;
$(".options_no_buy").each(function(i, {
children
}) {
$(children).slice(max_view).addClass("view_hide")
})
});
</script>
</head>
<body>
<div class="options_no_buy ">
<div class="items">1</div>
<div class="items">2</div>
<div class="items">3</div>
<div class="items">4</div>
<div class="items">5</div>
<div class="items">6</div>
</div>
<div class="options_no_buy ">
<div class="items">1</div>
<div class="items">2</div>
<div class="items">3</div>
<div class="items">4</div>
<div class="items">5</div>
<div class="items">6</div>
<div class="items">7</div>
<div class="items">8</div>
<div class="items">9</div>
</div>
</body>
</html>
|
Спасибо.. то что нужно!
|
Цитата:
Нужно посчитать кол-во добавленных классов .view_hide и передать это в тег с классом .sum Если нужно могу оплатить на карту)
<div class="options_no_buy ">
<div class="items">1</div>
<div class="items">2</div>
<div class="items">3</div>
<div class="items">4</div>
<div class="items">5</div>
<div class="items">6</div>
<div class="items view_hide ">7</div>
<div class="items view_hide ">8</div>
<div class="items view_hide ">9</div>
<div class="sum">тут должно быть кол-во классов .view_hide в даном примере 3</div>
</div>
|
nikoshot,
не копируйте сообщения целиком, без надобности, есть цитирование.
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
.view_hide {
background-color: rgba(0, 255, 255, 1)
}
.sum{
background-color: rgba(255, 0, 255, 1);
}
</style>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(function() {
let max_view = 4;
$(".options_no_buy").each(function(i, { children }) {
let { length } = $(children).slice(max_view).addClass("view_hide");
length && $(`<div class='sum'>${length}</div>`).appendTo(this)
})
});
</script>
</head>
<body>
<div class="options_no_buy ">
<div class="items">1</div>
<div class="items">2</div>
<div class="items">3</div>
<div class="items">4</div>
<div class="items">5</div>
<div class="items">6</div>
</div>
<div class="options_no_buy ">
<div class="items">1</div>
<div class="items">2</div>
<div class="items">3</div>
<div class="items">4</div>
<div class="items">5</div>
<div class="items">6</div>
<div class="items">7</div>
<div class="items">8</div>
<div class="items">9</div>
</div>
<div class="options_no_buy ">
<div class="items">1</div>
<div class="items">2</div>
<div class="items">3</div>
<div class="items">4</div>
</div>
</body>
</html>
|
| Часовой пояс GMT +3, время: 02:28. |