DOMTokenList.prototype['find'] = function (tokenPart) {
return [].map.call(this, function (_token) {
if (_token.search(tokenPart) >= 0) {
return _token;
}
return null;
})[0];
};
document.body.classList.find('abc'); // Вернёт null
document.body.classList.find('fontsize'); // Вернёт fontsize100
document.body.classList.find('font'); // Вернёт fontsize100
document.body.classList.find('size'); // Вернёт fontsize100
содержимое переменной будет храниться до тех пор пока не будет закрыта страница, т.е. переменные хранятся в оперативной памяти которую браузер выделил всей странице?
var anyVar = 678594;
anyVar = null;
document.addEventListener('DOMContentLoaded', function(){
let arr = ['foo', 'bar', 'baz'];
/* Native JS */
let containerJS = document.createElement('div');
[].map.call(arr, function(_el){
let _p = document.createElement('p');
_p.innerHTML = _el;
containerJS.appendChild(_p);
});
document.body.appendChild(containerJS);
/* jQuery */
let containerJQ = $('<div></div>').appendTo($('body'));
$.each(arr, function(_idx, _el){
$('<p></p>').html(_el).appendTo(containerJQ);
});
});
<a href="javascript:" data-sort="alphabet">sort by alpabet</a>
<a href="javascript:" data-sort="amount">sort by amount</a>
<div id="lst">
<div><span>jsghgori</span><span>345</span></div>
<div><span>ouerok</span><span>98</span></div>
<div><span>qiewhfh</span><span>548</span></div>
<div><span>nvxcmk</span><span>234</span></div>
<div><span>kefoo</span><span>38</span></div>
</div>
<script>
var lst = document.getElementById('lst');
Object.defineProperties(lst, {
_direct: {
/**
* Направление сортировки
* 0 - a->z
* 1 - z->a
*/
value: 0,
writable: true
},
direct: {
get: function () {
return this._direct;
},
set: function (val) {
this._direct = Math.abs(this._direct - 1);
},
enumerable: true,
configurable: true
},
_dataArr: {
/* Массив с данными */
value: [],
writable: true,
},
data: {
/* Получить массив с данными */
get: function () {
let _that = this;
if (!this._dataArr.length) {
/* Если массив пуст, получим данные */
[].map.call(this.children, function (_row) {
let _dataRow = {
title: _row.children[0].innerHTML,
amount: parseInt(_row.children[1].innerHTML),
element: _row
}
_that._dataArr.push(_dataRow);
});
}
/* В любом случае возвертаем массив */
return this._dataArr;
}
},
sortByAlphabet: {
value: function () {
let _that = this;
this.data.sort(function (a, b) {
if (_that.direct) {
return a.title > b.title ? 1 : -1;
} else {
return a.title > b.title ? -1 : 1;
}
});
this.direct = true;
this.drawRows();
},
writable: false
},
sortByAmount: {
value: function () {
let _that = this;
this.data.sort(function (a, b) {
if (_that.direct) {
return a.amount > b.amount ? 1 : -1;
} else {
return a.amount > b.amount ? -1 : 1;
}
});
this.direct = true;
this.drawRows();
},
writable: false
},
drawRows: {
value: function () {
for (let i = 0; i < this.data.length; i++) {
this.appendChild(this.removeChild(this.data[i].element));
}
},
writable: false
}
});
document.addEventListener('click', function (ev) {
if (ev.target.hasAttribute('data-sort')) {
switch (ev.target.getAttribute('data-sort')) {
case 'alphabet':
lst.sortByAlphabet();
break;
case 'amount':
lst.sortByAmount();
break;
}
}
});
</script>
$opts = array('http' =>
array(
'method' => 'GET',
'timeout' => 120
)
);
$context = stream_context_create($opts);
$result = file_get_contents('http://example.com/get.php', false, $context);
$($(<что-то там>).append(<чтототам>)).magnificPopup({
type:'ajax',
midClick: true,
mainClass: 'my-mfp-zoom-in',
overflowY: 'scroll',
tLoading: 'Загрузка...',
});