{% extends "base.html" %} {% block head_title %}Home{% endblock %} {% block site_title %}Utils{% endblock %} {% block content %}
_.has
(replacement for Object.prototype.hasOwnProperty)
:
var obj = {'property': true, 'hasOwnProperty': function() { return true }}; dumpVar(_.has(obj, 'property')); // has property dumpVar(_.has(obj, 'notExisting')); // not existing property dumpVar(obj.hasOwnProperty('notExisting')); // wrong
_.isEqual
var a = {'prop': 'x'}; var b = {'prop': 'y'}; var aCopy = {'prop': 'x'}; dumpVar(_.isEqual(a, b)); // not equal dumpVar(_.isEqual(a, aCopy)); // equal
_.deepCopy
var a = {'prop': {}}; var b = _.deepCopy(a); dumpVar(a === b); // a is not same object as b dumpVar(a.prop === b.prop); // properties are not same
_.lightCopy
var a = {'prop': {}}; var b = _.lightCopy(a); dumpVar(a === b); // a is not same object as b dumpVar(a.prop === b.prop); // properties are same
_.checkFeatures
dumpVar(_.checkFeatures(['ajax'])); dumpVar(_.checkFeatures(['history_push'])); dumpVar(_.checkFeatures(['touch']));
_.setCookie('time', new Date().getTime()); // session cookie // _.setCookie('time', new Date().getTime(), 7); - expires in 7 days dumpVar(_.getCookie('time'));
_.forEach
var a = [1, 2, 3]; _.forEach(a, function(element, idx) { dumpVar(element); });
_.forEachDict
var a = {key: 'value'}; .forEachDict(a, function(key, value) { dumpVar(key + '=' + value); });
_.dictToPairs
var a = {key: 'value'}; dumpVar(_.dictToPairs(a));
_.map
var a = [1, 2, 3, 4]; dumpVar(_.map(a, function(x) { return x*x; }));
_.some
var a = [1, 2, 3, 4]; _.some(a, function(x) { dumpVar(x); return x == 2; /* break on 2 */ });
_.every
var a = [1, 2, 3, 4]; _.every(a, function(x) { dumpVar(x); return x != 2; /* break on 2 */ });
_.filter
var a = ['', 'test', '', 'test2']; dumpVar(_.filter(a, function(x) { return x.length; /* not empty strings */ }));
_.keys
var dct = { key: 'value', key2: 'value'}; dumpVar(_.keys(dct));
_.bindEvent
, _.triggerEvent
, _.unbindEvent
var onCustomEvent = function(event) { dumpVar(event.memo); } var element = document.createElement('DIV'); _.bindEvent(element, "custom", onCustomEvent); _.triggerEvent(element, "custom", "Custom event triggered"); _.unbindEvent(element, onCustomEvent);
_.onLoad
, _.triggerLoad
, _.unbindOnLoad
var onLoad = function(event) { dumpVar(event.memo.tagName); // event.memo == loaded element }; _.onLoad(onLoad); var dynamicElement = document.createElement('DIV'); document.body.appendChild(dynamicElement); _.triggerLoad(dynamicElement); // call for dynamic created element _.unbindOnLoad(onLoad);
_.escapeHTML
dumpVar(_.escapeHTML('&<>"\''));
_.hasClass
, _.addClass
, _.removeClass
, _.toggleClass
var element = document.createElement('DIV'); _.addClass(element, 'klass'); dumpVar(_.hasClass(element, 'klass')); _.removeClass(element, 'klass'); dumpVar(_.hasClass(element, 'klass')); _.toggleClass(element, 'klass'); dumpVar(_.hasClass(element, 'klass'));
_.id
var element = document.createElement('ARTICLE'); element.setAttribute('id', 'test'); document.body.appendChild(element); dumpVar(_.id('test').tagName); document.body.removeChild(element); dumpVar(_.id('test'));
_.cls
var a1 = document.createElement('ARTICLE'); var a2 = document.createElement('NAV'); _.addClass(a1, 'testclass'); _.addClass(a2, 'testclass'); document.body.appendChild(a1); document.body.appendChild(a2); _.forEach(_.cls(document.body, 'testclass'), function(element) { dumpVar(element.tagName); }); _.forEach(_.cls('testclass'), function(element) { // parent not required dumpVar(element.tagName); }); document.body.removeChild(a1); document.body.removeChild(a2);
_.tag
dumpVar(_.tag(document.body, 'PRE').length); dumpVar(_.tag('PRE').length); // parent not required
_.isNode
, _.isElement
, _.isParentOf
var node = document.createTextNode('...'); var element = document.createElement('DIV'); dumpVar(_.isNode(node)); dumpVar(_.isNode(element)); dumpVar(_.isElement(node)); dumpVar(_.isElement(element));
_.isParentOf
, _.findParent
, _.findParentByCls
var parent = document.createElement('DIV'); parent.className = 'parent'; var child = document.createElement('DIV'); child.className = 'child'; parent.appendChild(child); dumpVar(_.isParentOf(child, parent)); dumpVar(_.findParent(child, function(element) { return _.hasClass(element, 'parent'); }).className); dumpVar(_.findParentByCls(child, 'parent').className);
_.elem
var element = _.elem('A', {'href': '#', 'class': 'link'}, 'Link text'); dumpVar(element.innerHTML);
_.insertAfter
var parent = _.elem('UL'); var i1 = _.elem('LI', undefined, "Text"); var i2 = _.elem('LI', undefined, "Text2"); parent.appendChild(i1); parent.appendChild(i2); var between = _.elem('LI', undefined, "Between"); _.insertAfter(between, i1); dumpVar(parent.childNodes[1].innerHTML);
_.getData
, _.setData
var element = _.elem('DIV', {'data-variable-name': 'text'}); dumpVar(_.getData(element, 'variableName')); _.setData(element, 'variableName', 'new text'); dumpVar(_.getData(element, 'variableName'));
_.serializeForm
var formElement = _.id('example_form'); dumpVar(_.serializeForm(formElement, {raw: true}));
_.getUrlParameterByName
var url = "http://example.tld/?parameter=value"; dumpVar(_.getUrlParameterByName('parameter', url));
_.encodeURLParameters
var parameters = {parameter: 'value', 'special#': 'special#value',}; dumpVar(_.encodeURLParameters(parameters)); var parameters = [['multi', 1], ['multi', 2], ['multi', 3]]; dumpVar(_.encodeURLParameters(parameters));
_.addURLParameters
var parameters = {q: 'search string'}; dumpVar(_.addURLParameters('http://google.com/', parameters));{% endblock %}