var audio = new Audio();
audio.onended = function(e)
{
  var target = e.target;
  var cur_src = target.getAttribute('src');
  switch(cur_src)
  {
     case '1.mp3': target.setAttribute('src', '2.mp3'); break;
     case '2.mp3': target.setAttribute('src', '3.mp3'); break;
     case '3.mp3': target.setAttribute('src', '1.mp3'); break;
  }
  target.play();
};
audio.setAttribute('src', '1.mp3');
audio.autoplay = true;<input type="button" onclick="calc_table_add_row()" value="Добавить"/>
<div id="calc_table" class="table"></div>
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<script>
      // функция для добавления вычисляемой строки
      function calc_table_add_row()
      {
        //Элементы input подписаны на события onkeypress и onblur, что позволяет делать пересчет как при непосредственном изменении значения, так и во время потери фокуса
        $('#calc_table').append(
        '<div class="tr">\
           <div class="td">' + ($('#calc_table>div.tr').length + 1 /* это нумератор строки, добавляется номер от существующего кол-ва строк */) + '</div>\
           <div class="td">\
             <input type="text" onkeypress="calc_table_recalc_row(event)" onblur="calc_table_recalc_row(event)"/></div>\
           <div class="td"><input type="text" onkeypress="calc_table_recalc_row(event)" onblur="calc_table_recalc_row(event)"/></div>\
           <div class="td"><input type="text" onkeypress="calc_table_recalc_row(event)" onblur="calc_table_recalc_row(event)"/></div>\
           <div class="td"></div>\
           <div class="td"></div>\
         </div>'
        ); 
      }
      // функция-обработчик пересчета значений в строке
      function calc_table_recalc_row(e)
      {
        var cur_input = e.target; // на этом элементе произошло событие (input)
        var cur_td = cur_input.parentNode; // получаем родительский элемент (div.td, в котором нажодится затронутый input)
        var cur_tr = cur_td.parentNode; // получаем родительский элемент (div.tr, в котором нажодится div.td с затронутым input)
        var td_divs = $(cur_tr).find('div.td'); // находим все элементы div.td на данной строке
        try // если возникнет какая-то ошибка, то тихо прекратим вычисления
        {
          var input1 = parseFloat($(td_divs[1]).find('input')[0].value); // получаем значение ячейки 2
          var input2 = parseFloat($(td_divs[2]).find('input')[0].value); // получаем значение ячейки 3
          var input3 = parseFloat($(td_divs[3]).find('input')[0].value); // получаем значение ячейки 4
          if(!isNaN(input1) && !isNaN(input2) && !isNaN(input3)) // все ли значения получились числами вещественными ?
          {
            var result4 = input3 / input2; // считаем результат для ячейки 5
            $(td_divs[4]).html( (result4).toFixed(2) ); // записываем результат в ячейку 5 с округлением до 2 знаков
            $(td_divs[5]).html( (result4 * (input1.toFixed(2) == 10.00 ? 0.1 : 5)).toFixed(2) ); // считаем и записываем результат в ячейку 6 с округлением до 2 знаков
          }
        }
        catch(ex)
        {
        }
      }
</script>if(!preloader.classList.contains('done'))
if(preloader.getAttribute('class').indexOf('done') == -1)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';
}