new Date(yearVal, monthVal, dayVal)
(new Date()).getTime() - (new Date(yearVal, monthVal, dayVal)).getTime()
var now = new Date();
var age = (now.getFullYear() - yearVal - ((now.getMonth() - (monthVal - 1) || now.getDate() - dayVal) < 0 ? 1 : 0));
function highlightcurrent(items, index)
{
if(index != 2) // выходим из функции, если достигли определенного индекса
{
items.removeClass("highlightcurrent");
items.eq(index).addClass('highlight');
items.eq(index).addClass('highlightcurrent');
setTimeout(function()
{
highlightcurrent(items, index + 1)
}, 1000);
}
}
highlightcurrent($('.progress-page-tabs-col'), 0);
Object.defineProperty(window /*- объект, где располагается свойство */, "my_var" /* - свойство, которое нужно опекать */,
{
get: function() // сторожим чтение значения
{
alert('Кто-то прочилал my_var!');
},
set: function(newValue) // сторожим запись значения
{
alert('Кто-то записал my_var! Новое значение: ' + newValue);
}
});
my_var = 123456; // пробуем записать что-то
you_var = my_var; // пробуем извлечь значение
<a id="my_link" href="https://vk.com/durov" target="_blank" style="display: none;">
<img src="img/57d3d0a9e386c157136717cc.png" width="30px"/>
</a>
<input type = "button" onclick = "document.getElementById('my_link').style.display = 'inline';" value = "связаться со мной" />
var node = this; // в ноду кладем текущий элемент Element;
// начинаем примерять селектор, двигаясь от текущего элемента к его родителям
while (node) // пока есть элемент (не null) (или на предыдущей итерации провалили матч и есть родитель)
{
if (node.matches(css)) // подходит селектор элементу ?
return node; // возвращаем этот элемент, цикл останавливается
else
node = node.parentElement; // не подошло, устанавливаем на node родительский элемент, идем на следующую итерацию.
}
return null; // цикл прошелся по всем родителям - ничего не нашли
Element.prototype.closest = function (css)
Element.prototype.matches = Element.prototype.matchesSelector || <подставьте любой метод, чтобы делал матч, но назывался не как у всех>
<style>
#elem1
{
display: block;
width: 400px;
height: 400px;
background-image: url("back1.png"),
url("back2.png");
transition: background-image 0.5s ease; /* для наглядности эффекта */
}
</style>
<div id="elem1"></div>
<script>
var trigger = 0;
setInterval(function()
{
var elem1 = document.getElementById('elem1');
elem1.style.backgroundImage = trigger % 2 == 1 ? 'url("back1.png"), url("back2.png")' : 'url("back2.png"), url("back1.png")';
trigger++;
}, 1000);
</script>
pole.onclick = function(e)
{
if(e.target.getAttribute('class') != 'pole-blue')
{
e.target.setAttribute('class', 'pole-blue');
}
}
var pole = null;
for(var i = 0;i<10;i++)
{
pole = document.createElement('div');
Объекты могут быть отсортированы по значению одного из своих свойств.
var items = [
{ name: 'Edward', value: 21 },
{ name: 'Sharpe', value: 37 },
{ name: 'And', value: 45 },
{ name: 'The', value: -12 },
{ name: 'Magnetic' },
{ name: 'Zeros', value: 37 }
];
items.sort(function (a, b) {
if (a.name > b.name) {
return 1;
}
if (a.name < b.name) {
return -1;
}
// a должно быть равным b
return 0;
});
<form action="?action=select_pay" method="POST">
<input type="hidden" name="pay_mode" value="20" />
<input type="submit" class="superbutton" value="Яндекс Деньги" />
</form>
<form action="?action=select_pay" method="POST">
<input type="hidden" name="pay_mode" value="10" />
<input type="submit" class="superbutton" value="Еще одна платежка" />
</form>
if ('ontouchstart' in document.documentElement)
{
// есть сенсорный экран, значит, имеем дело с переносным гаджетом.
}
else
{
// desktop версия кода
(элемент ввода).focus(); //устанавливаем фокус
}
(function()
{
var src = 'https://cdn.jsdelivr.net/npm/suggestions-jquery@17.12.0/dist/css/suggestions.min.css';
var link = document.createElement('link');
link.setAttribute('src', src);
link.setAttribute('type', 'text/css');
link.setAttribute('rel', 'stylesheet');
document.head.appendChild(link);
src = 'https://cdn.jsdelivr.net/npm/suggestions-jquery@17.12.0/dist/js/jquery.suggestions.min.js';
var scrt = document.createElement('script');
scrt.setAttribute('src', src);
document.head.appendChild(scrt);
}
)();
scheduler.attachEvent("onEventSave",function(id,ev,is_new)
{
var checked_users = ev.username.split(','); // переводим строку в список отмеченных id пользователей
var new_text = ''; // сюда будем писать строку с именами пользователей
var checked_users_count = checked_users.length; // кол-во отмеченных пользователей
for (var i = 0; i < checked_users_count; i++)
{
var check_user_id = checked_users[i]; // текущий отмеченный id
var ch_users = users.filter(usr => usr.key == check_user_id); // получаем человека из списка users по отмеченному id (на выходе тоже список, но не более 1 элемента)
if (ch_users.length > 0)
new_text += (new_text != '' ? ', ' : '') + ch_users[0].label; // вписываем в строку найденного пользователя
}
ev.text = new_text == '' ? 'Nobody' : new_text; // если никого не нашли, то как-то обозначаем эту ситуацию (Nobody)
return true;
})
<label>
<input type="hidden" id="field_0_1" name ="param_list[0][field_1]" value="off"/>
<input type="checkbox" onchange="set_hidden_checkbox(this, 'field_0_1')"/>
</label>
function set_hidden_checkbox(target, id)
{
var hidden = document.getElementById(id);
if(hidden !== undefined)
hidden.value = target.checked ? 'on' : 'off';
}
var anim_speed = 300; // пикселей в секунду
var anim_time = (top * 1000) / anim_speed; // 1000 - поправка на милисекунды
//анимируем переход на расстояние
$('body,html').animate({scrollTop: top}, anim_time);
<div class="info_block one">
<div class="one_1"></div>
<div class="one_2"></div>
</div>
<div class="info_block two">
<div class="two_1"> </div>
<div class="two_2"> </div>
</div>
<div class="info_block three">
<div class="three_1"> </div>
<div class="three_2"> </div>
</div>
<div class="info_block four">
<div class="four_1"> </div>
<div class="four_2"> </div>
</div>
<style>
div.info_block
{
display: none;
}
div.info_block.active
{
display: block;
}
</style>
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<script>
function display_div(class_name)
{
$('div.info_block').removeClass('active');
$('div.info_block.' + class_name).addClass('active');
}
</script>
<script>
display_div('one');
</script>
<ul>
<li onclick="display_div('one')">Первый блок</li>
<li onclick="display_div('two')">Второй блок</li>
<li onclick="display_div('three')">Третий блок</li>
<li onclick="display_div('four')">Четвертый блок</li>
</ul>