<form class="card__content variants" action="/cart">
<h1 class="card__title">TEST</h1>
<select class="select_product" name="variant1">
<option value="198" data-price="8 000 руб" data-compare-price="0 руб">Фискальный накопитель на 15 мес</option>
<option value="216" data-price="12 000 руб" data-compare-price="0 руб">Фискальный накопитель на 36 мес</option>
</select>
<select class="select_product" name="variant2">
<option style="display: none;">Регистрация в ИФНС</option>
<option value="214" data-price="1 000 руб" data-compare-price="0 руб">В офисе</option>
<option value="215" data-price="2 000 руб" data-compare-price="0 руб">У клиента</option>
</select>
<select class="select_product" name="variant3">
<option style="display: none;">Договор с ОФД</option>
<option value="217" data-price="2 000 руб" data-compare-price="0 руб">на 12 месяцев</option>
<option value="218" data-price="2 400 руб" data-compare-price="0 руб">на 15 месяцев</option>
<option value="219" data-price="4 500 руб" data-compare-price="0 руб">на 36 месяцев</option>
</select>
<select class="select_product" name="variant4">
<option style="display: none;">ЭЦП (без носителя)</option>
<option value="220" data-price="1 300 руб" data-compare-price="0 руб">Для кассы</option>
<option value="221" data-price="2 000 руб" data-compare-price="0 руб">для маркировки</option>
<option value="222" data-price="4 500 руб" data-compare-price="0 руб">для ЕГАИС</option>
</select>
<select class="select_product" name="variant5">
<option style="display: none;">Договор на тех. обслуживание (1 год)</option>
<option value="223" data-price="1 600 руб" data-compare-price="0 руб">Тариф "Эконом"</option>
<option value="224" data-price="2 800 руб" data-compare-price="0 руб">Тариф "Стандарт"</option>
<option value="225" data-price="4 700 руб" data-compare-price="0 руб">Тариф "Эксклюзив"</option>
</select>
<p class="card__price prc-new">8 000 руб</p>
</form>
let sum = 0;
function calculate () {
sum = 0;
$('select[name^=variant]').each(function(index) {
const price = $(this).find('option:selected').attr('data-price');
sum += price ? +price.replace(/[^\d]+/g, '') : 0;
});
$('form.variants').find('.prc-new').html(`${sum} руб`);
}
$('select[name^=variant]').on('change', function() {
calculate();
return false;
});
calculate();
const list = [
{id:1, pid:0},
{id:2, pid:0},
{id:3, pid:2},
{id:4, pid:2},
{id:5, pid:3},
{id:6, pid:5},
];
function removeById(id) {
const index = list.findIndex(item => item.id === id);
if (index === -1) {
return;
}
list.splice(index, 1);
const items = list.filter(item => item.pid === id);
items.forEach(item => removeById(item.id));
}
removeById(id);
<a id="incrementButton" style="color:green;" href="#">[+1]</a>
<div id="item"></div>
const item = document.getElementById('item');
const incrementButton = document.getElementById('incrementButton');
let cost = 0; // Текущее число
incrementButton.addEventListener('click', () => {
cost++;
item.innerHTML = cost;
});
item.innerHTML = cost;
const v1 = 100;
const count = getComputedStyle(document.documentElement).getPropertyValue('--count');
const width = `calc(100% / ${count} * ${v1})`;
document.querySelector('div').style.width = width;
<div>TEST</div>
:root {
--count: 50;
}
div {
border: 1px solid red;
}
var(--count)
не выполнится в этом контексте и надо получить значение CSS переменной через getComputedStyle(document.documentElement).getPropertyValue('--count')
. function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
div2.style = 'background:red';//должно выполниться первым
let info = document.querySelector('#info');
async function myFunc() {
await sleep(1000);
info.innerHTML = 'Привет!';//должно выполниться вторым
await sleep(1000);
div1.style = 'background:green';
}
myFunc();