$("#social").select2({
templateResult: formatState,
templateSelection: formatState
});
// или перечисляем через запятую
$('[name=test1], [name=test2], [name=test3]').on('input', function(){
console.log($(this).val());
});
// или таким образом
$('[name^=test]').on('input', function(){
console.log($(this).val());
});
$('div input:not([name=stop1])').on('input', function(){
console.log($(this).val());
});
let from = document.querySelector(".from").value.trim();
let to = document.querySelector(".to").value.trim();
Во-вторых, нужно учесть, что данные инпутов - всегда строковые. Т.к. судя по коду вы ожидаете числовые значения, то данные можно сразу преобразовывать к этому типу:let from = +document.querySelector(".from").value.trim();
let to = +document.querySelector(".to").value.trim();
// Можно так же использовать методы parseInt() или parseFloat()
В итоге, проверка будет такой:if (!form && !to) {
error.textContent = 'Нет данных, попадающих под условие фильтра';
}
const select = $('#sort_sel');
select.find('option:not(:first-child)').sort(function(a, b) {
var sa = a.textContent.toLowerCase(),
sb = b.textContent.toLowerCase();
return sb < sa ? 1 : sb > sa ? -1 : 0;
}).appendTo(select);
select.find('option:not([value=""])')
Но на JS тоже годится
const roundOrNil = (n) => Math.abs(~~n - n) > 0.1 ? null : ~~n;
console.log(roundOrNil(7)); // 7
console.log(roundOrNil(7.3)); // null
console.log(roundOrNil(-5.2)); // null
console.log(roundOrNil(-5.9)); // null
console.log(roundOrNil(-5.1)); // -5
console.log(roundOrNil(-5.05)); // -5
var str = `<div draggable="true" onclick="return false;" id="item_col-2" class="layout_el wtf col-2 gap">
<div class="g-grid" ondrop="drop(event, this)" ondragover="allowDrop(event)">123</div>
<div class="g-grid" ondrop="drop(event, this)" ondragover="allowDrop(event)">321</div>
</div>`;
// Допустимые классы
const allowClasses = new Set(['col-2', 'gap', 'g-grid']);
const wrapper = document.createElement('div');
wrapper.innerHTML = str;
wrapper.querySelectorAll('*').forEach(el => {
[...el.attributes].forEach(attr => {
if (attr.name !== 'class') {
el.removeAttribute(attr.name);
} else {
[...new Set(el.classList)].filter(x => !allowClasses.has(x)).forEach(cls => {
el.classList.remove(cls);
});
}
});
});
console.log(wrapper.innerHTML);
мучаюсь второй день
div {
width: 150px;
height: 150px;
padding: 10px;
margin: 10px;
border: 10px solid #999;
}
let div = document.querySelector('div'),
cs = getComputedStyle(div);
console.log(div.offsetWidth + parseInt(cs.marginLeft) + parseInt(cs.marginRight)); // 210
const getDelta = e => (e = window.event || e) && e.wheelDelta ? e.wheelDelta / 120 : -e.detail / 3;
$('div.rl-desc').on('mousewheel DOMMouseScroll', function(e) {
e.preventDefault();
$(this).scrollTo(getDelta(e) > 0 ? '-=20' : '+=20');
});
Хотя, многое (если не всё) тут для меня загадка, но вам видней.var getDelta = function getDelta(e) {
e = window.event || e;
return e.wheelDelta ? e.wheelDelta / 120 : -e.detail / 3;
};
document.addEventListener("DOMContentLoaded", () => {
// ваш JS-код
});
$("form").each(function(i, el) {
$(el).submit(function() {
let $that = $(this); // var $that = $(this); - для ES5
$.ajax({
url: $that.attr('action'),
type: 'POST',
data: {
contactemail: $that.find('input[type=email]').val()
},
success: function() {
$that.closest(".section").find(".bg_form_submit").slideToggle("slow");
alert("1");
$('form').trigger('reset');
},
error: function() {
alert("0");
}
});
return false;
});
});
let closeIco = document.getElementsByClassName('clossing');
for (let i = 0; i < closeIco.length; i++) {
closeIco[i].addEventListener('click', delMessage.bind(this, i));
}
function delMessage(itemNum) {
messages = document.getElementsByClassName('message');
messages[itemNum].style.display = 'none';
}
Что касается последнего пункта, то можно сделать просто - вызвать нужную нам функцию внутри callback-функции обработчика события.closeIco[i].addEventListener('click', () => {
delMessage(i);
});
var mediaQuery = window.matchMedia("screen and (min-width: 600px)");
mediaQuery.addListener(foo);
foo(mediaQuery);
function foo(mq) {
document.body.style.backgroundColor = mq.matches ? '#f00' : '#060';
}
document.getElementById('player').addEventListener('ended', function() {
alert('The end!');
}, false);
var dependence = {
inha: 'aa',
inhb: 'ab'
},
allInput = $(':text'),
inpFrom = allInput.filter(function(i, el) {
return $(el).closest('[class^=forses]').length;
});
$('button').on('click', function() {
$.each(inpFrom, function(i, el) {
var cls = el.className.match(/([a-z]+)([\d]+)/);
if (dependence.hasOwnProperty(cls[1])) {
allInput.filter('#' + dependence[cls[1]] + cls[2]).val(el.value);
}
});
});
Добавляйте только в объект dependence любые зависимости между классами и ID (значение без чисел).я етим денги не зарабатываю, ет для себя
window.addEventListener('load', function(){
document.getElementById('preloader').style.display = 'none';
});
P.S. Не заметил тег jQuery. Раз так, то код еще проще:$(window).on('load', function(){
$('#preloader').fadeOut('slow');
});