$subject = '<div class="title">%TITLE%</div><div class="block">%TEXT%</div>';
$pattern = '/%(.*?)%/';
preg_match($pattern, $subject, $matches);
print_r($matches);
/%([\w]*?)%/
var div = document.getElementById('div');
// Наблюдатель за изменениями DOM элемента
var MutationObserver = (function () {
var pref = ['WebKit', 'Moz', 'O', 'Ms', ''];
for (var i=0; i < pref.length; i++) {
if (pref[i] + 'MutationObserver' in window) {
return window[pref[i] + 'MutationObserver'];
}
}
return false;
}());
new MutationObserver( function (mutations) {
mutations.forEach( function (e, i) {
console.log('измененo'); // что сделать при изменении
console.log(e);
});
}).observe(div, { attributes: true });
div.dataset.ololo = true; // изменяем элемент, и смотрим консоль
audioRecorder.recorder.record()
и другие.recorder.record()
и др. Почему без audioRecorder перед recorder.record - не понятно. Разве что эти функции вызываются в контексте audioRecorder.// может быть любым элементом (не только инпутом)
$('[data-price]').on('click', function () {
// значение атрибута data-price кликнутого элемента
var price = this.dataset.price;
// "подняться" на 2 уровня по DOM
// найти внутри элемент с классом .price
// и заменить его текст на полученное значение
$(this).parent().parent().find('.price').text(price);
});
var body = document.getElementsByTagName('body')[0];
// по клику
window.addEventListener('click', function (e) {
// создадим кастомное событие типа scroll
var event = new CustomEvent("scroll", {
detail: {
scrollTop: 200 // передадим нужные значения
}
});
// "вызовем" событие
window.dispatchEvent(event);
});
// добавим слушателя события scroll
window.addEventListener('scroll', function (e) {
console.log(e);
// если событие не настоящее
if (!e.isTrusted) {
body.scrollTop = e.detail.scrollTop; // изменяем scrollTop на переданное значение
}
});
// json
var json = '{"foo": "bar", "lorem": "ipsum"}';
// Парсим в объект
var obj = JSON.parse(json);
// в цикле обходим свойства объекта
// добавляя значения в таблицу
for (var i in obj) {
var td = document.createElement('td');
td.innerHTML = obj[i];
tr.appendChild(td);
}
function slider () {
// ...
}
window.onload = function () {
slider();
};
ajax( function (r) {
div.html(r);
slider();
});
// <div data-task_elem="12">...</div>
// <button class="remove" data-task="12">...</button>
// ...
$('.remove').on('click', function (e) {
var id = e.target.dataset.task; // 12
delete arr[id];
$('[data-task_elem="'+ id +'"]').remove();
});
var events = {};
var w = 0, h = 0;
// когда кнопка зажата
document.addEventListener('keydown', function (e) {
events[e.keyCode] = true; // добавляем код кнопки в объект
action(); // вызываем функцию "действия"
});
document.addEventListener('keyup', function (e) {
// удаляем код кнопки из объекта только когда клавиша отпущена
events[e.keyCode] = false;
console.log(w, h);
});
// а тут теперь можно писать инструкции для любых комбинаций
function action () {
if (events[38]) w++;
if (events[39]) h++;
if (events[38] && events[39]) console.log('обе кнопки');
}
$q = insert_into( "users", [
"name" => "Jack",
"age" => "22"
]);
// $q = INSERT INTO `users` (`name`, `age`) VALUES ('Jack', '22')
var data = {};
var div = $('#res');
$('#imin, #imax').on('change', function (e) {
data[e.target.id] = e.target.value;
if (data.imin && data.imax) div.html(data.imin + ' - ' + data.imax + ' m3');
else if (data.imin && !data.imax) div.html('от ' + data.imin + ' m3');
else if (!data.imin && data.imax) div.html('до ' + data.imax + ' m3');
else if (!data.imin && !data.imax) div.html('m3');
});
<input type="" class="form-control" id="imin" placeholder="от">
<input type="" class="form-control" id="imax" placeholder="до">
<div class="input-group-addon" id="res">м²</div>
Header add Access-Control-Allow-Origin "*"
var data = {
name: 'Jack',
items: {
dog: 1,
car: 1,
phone: 2,
},
};
// объект в json
var json = JSON.stringify(data); // {"name":"Jack","items":{"dog":1,"car":1,"phone":2}}
// json в объект
var obj = JSON.parse(json); // объект
var data = JSON.parse('{"name":"Jack","items":{"dog":1,"car":1,"phone":2}}');
var header = '<h2>My name is ' + data.name + '</h2>';
var list = '';
for (var i in data.items) {
list += '<li>' + i + ': ' + data.items[i] + ' шт. </li>';
}
document.getElementById('div').innerHTML += header;
document.getElementById('div').innerHTML += '<ul>' + list + '</ul>';
// Конечно, лучше создавать элементы через
// var div = document.createElement('div');
// наполнять через div.innerHTML = "text";
// и добавлять их через element.appendChild(div);
var data = {num: 1};
$('#wid, #len, #num').on('change', function (e) {
data[e.target.id] = e.target.value; // имена свойств объекта совпадают с айдишниками инпутов для простоты
if (data.wid && data.len && data.num) {
$('.res').html(data.wid * data.len * data.num);
}
});
<input type="text" id="wid">
<input type="text" id="len">
<input type="text" id="num" value="1">
<div class="res"></div>