layout |
---|
default |
This is a complete rewrite of the well-known jQuery library.
Every method has been rewritten or replaced by another method.
Simply import light-query.min.js
into your HTML by downloading it or using a CDN.
<script src="https://gitcdn.link/repo/Zenoo/LightQuery/master/light-query.min.js"></script>
- Initialize your object like you would in jQuery using
$
:
$(selector[, context])
// Example
let elements = $('yo.ur[selec="tor"]');
let elementsWithContext = $('yo.ur[selec="tor"]', section);
- If you need to wait for the document to be loaded, use:
$(() => {
// The document is loaded here
});
// OR
$(function(){
// The document is loaded here
});
- The
LightQuery
object extends the nativeArray
object, so you can use all of its methods/properties.
// Examples
$('p').length;
$('p')[0];
$('p').map(...);
The full API documentation is available on https://zenoo.github.io/LightQuery/docs/-_$.
| .blur() |
| .clone([deep]) |
| .contents() |
| .detach() |
| .each(callback) |
| .empty() |
| .eq(index) |
| .find(selector) |
| .first() |
| .get([index]) |
| .has(parameter) |
| .height() |
| .hide() |
| .html([html]) |
| .index() |
| .is(target) |
| $.ajax(parameter[, settings]) |
| $.get(url[, data, success, dataType]) |
| NEW ! $.insert(toInsert, position, relativeElements) |
| .last() |
| .not(target) |
| .off(events[, selector, handler]) |
| .offset() |
| .on(events[, selector], handler[, data]) |
| .remove() |
| .serialize() |
| .show() |
| .text([value]) |
| .toggle([force]) |
| .val([value]) |
| .width() |
| .wrap(wrapper) |
| .addBack() Use more appropriate selectors instead |
| .ajaxComplete() Use $.ajax() instead |
| .ajaxError() Use $.ajax() instead |
| .ajaxSend() Use $.ajax() instead |
| .ajaxStart() Use $.ajax() instead |
| .ajaxStop() Use $.ajax() instead |
| .ajaxSuccess() Use $.ajax() instead |
| .andSelf() Use more appropriate selectors instead |
| .animate() Use CSS3 animations instead |
| .change() Use .on('change') or .trigger('change') instead |
| .clearQueue() There is no queue |
| .click() Use .on('click') or .trigger('click') instead |
| .data() Use .attr('data-...') instead |
| .dblclick() Use .on('dblclick') or .trigger('dblclick') instead |
| .delay() Use setTimeout() or CSS3 animations instead |
| .delegate() Use .on() instead |
| .dequeue() There is no queue |
| .die() Use .off() instead |
| .end() Use another query instead |
| .error() Use .on('error') instead |
| .fadeIn() Use classes and CSS transitions instead |
| .fadeOut() Use classes and CSS transitions instead |
| .fadeTo() Use classes and CSS transitions instead |
| .fadeToggle() Use classes and CSS transitions instead |
| .finish() Use CSS3 animations instead |
| .focus() Use .on('focus') or .trigger('focus') instead |
| .focusin() Use .on('focusin') instead |
| .focusout() Use .on('focusout') instead |
| .hover() Use .on('mouseenter') and .on('mouseleave') instead |
| .innerHeight() Use .height() instead |
| .innerWidth() Use .width() instead |
| $.each() Use for ... of or .forEach() instead |
| $.extend() Use Object.assign() instead |
| $.fn.extend() Use _$.prototype.XXX instead |
| $.getJSON() Use $.ajax() instead |
| $.getScript() Use $.ajax() instead |
| $.globalEval() Use proper coding instead |
| $.post() Use $.ajax() instead |
| .queue() There is no queue |
| .keydown() Use .on('keydown') or .trigger('keydown') instead |
| .keypress() Use .on('keypress') or .trigger('keypress') instead |
| .keyup() Use .on('keyup') or .trigger('keyup') instead |
| .live() Use .on() instead |
| .load() Use $.ajax() and .html() instead |
| .mousedown() Use .on('mousedown') or .trigger('mousedown') instead |
| .mouseenter() Use .on('mouseenter') or .trigger('mouseenter') instead |
| .mouseleave() Use .on('mouseleave') or .trigger('mouseleave') instead |
| .mousemove() Use .on('mousemove') or .trigger('mousemove') instead |
| .mouseout() Use .on('mouseout') or .trigger('mouseout') instead |
| .mouseover() Use .on('mouseover') or .trigger('mouseover') instead |
| .mouseup() Use .on('mouseup') or .trigger('mouseup') instead |
| .nextUntil() Use better queries instead |
| .offsetParent() Why would you ever need this |
| .one() Use .on() and .off() instead |
| .outerHeight() Use .height() and .css() instead |
| .outerWidth() Use .width() and .css() instead |
| .parentsUntil() Use .parents() and .not() instead |
| .prevUntil() Use better queries instead |
| .promise() There is no queue |
| .prop() Use .attr() instead |
| .pushStack() There is no stack |
| .queue() There is no queue |
| .ready() Use $(function(){ ... }) or $(() => { ... }) instead |
| .removeData() Use .removeAttr() instead |
| .removeProp() Use .removeAttr() instead |
| .resize() Use .on('resize') or .trigger('resize') instead |
| .scroll() Use .on('scroll') or .trigger('scroll') instead |
| .select() Use .on('select') or .trigger('select') instead |
| .size() Use .length instead |
| .slideDown() Use classes and CSS transitions instead |
| .slideToggle() Use classes and CSS transitions instead |
| .slideUp() Use classes and CSS transitions instead |
| .stop() Use CSS3 animations instead |
| .submit() Use .on('submit') or .trigger('submit') instead |
| .toArray() Use .get() instead |
| .triggerHandler() Use .trigger() instead |
| .unbind() Use .off() instead |
| .undelegate() Use .off() instead |
| .unload() Use .on('unload') instead |
| .wrapInner() Use .children().wrapAll() instead |
{:#add}
.add(selector[, context]) Add elements to the current LightQuery object |
---|
selector {Element|NodeList|Array|String|_$} Element(s) to add |
context {Element} Context of the potential query |
Returns{_$} The current LightQuery object |
// Examples
$('p').add('aside');
$('p').add('<div>Example</div>');
$('p').add(document.body);
{:#addClass}
.addClass(classes) Add class(es) to each element |
---|
classes {String} Space separated classes to add |
Returns{_$} The current LightQuery object |
// Examples
$('p').addClass('selected');
$('p').addClass('selected blue bg');
{:#after}
.after(...content) Insert content after each element |
---|
elements {Element[]|NodeList[]|Array[]|String[]|_$[]} Content to be inserted |
Returns{_$} The current LightQuery object |
// Examples
$('p').after('div');
$('p').after('<aside>See more</aside>');
{:#append}
.append(...content) Append content to the end of each element |
---|
content {Element[]|NodeList[]|Array[]|String[]|_$[]} Content to be appended |
Returns{_$} The current LightQuery object |
// Examples
$('div').append('p');
$('div').append('<aside>See more</aside>');
{:#appendTo}
.appendTo(targets) Append each element to the end of the targets |
---|
elements {Element|NodeList|Array|String|_$} Content to be appended |
Returns{_$} The current LightQuery object |
// Examples
$('p').appendTo('div');
$('<aside>See more</aside>').appendTo('p');
{:#attr}
.attr(name[, value]) Set/Get an attribute for each element |
---|
name {String} The attribute name |
value {String|Number|null} The attribute value |
Returns{_$|String} The current LightQuery object or the value of the attribute |
// Examples
let title = $('p').attr('title');
$('p').attr('title', 'New title');
{:#before}
.before(...content) Insert content before each element |
---|
content {Element[]|\NodeList[]|Array[]|String[]|_$[]} Content to be inserted |
Returns{_$} The current LightQuery object |
// Examples
$('p').before('div');
$('p').before('<aside>See more</aside>');
{:#blur}
.blur() Force the focus out of each element |
---|
Returns{_$} The current LightQuery object |
// Example
$('p').blur();
{:#children}
.children([selector]) Get the children of each element |
---|
selector {String} An optional filter |
Returns{_$} The current LightQuery object's children |
// Examples
$('p').children();
$('p').children('span');
{:#clone}
.clone([deep]) Clone each element |
---|
deep {Boolean} Deep clone the elements ? Default: true |
Returns{_$} A clone of the previous LightQuery object |
// Examples
let clone = $('p').clone();
let shallowClone = $('p').clone(false);
{:#closest}
.closest(selector) Get the closest (self-included) parent matching the selector for each element |
---|
selector {String} The selector |
Returns{_$} A new LightQuery object |
// Example
$('p').closest('aside');
{:#contents}
.contents() Get the children of each element (including text nodes) |
---|
Returns{_$} A LightQuery object containing the child nodes |
// Example
$('p').contents();
{:#css}
.css(parameter[, value]) Set/Get one or more CSS properties |
---|
parameter {String|Object} The CSS property name or an object containing every CSS properties to be changed |
value {String} The CSS property value |
Returns{_$} The current LightQuery object |
// Examples
$('p').css('color', 'red');
$('p').css('color');
$('p').css({
color: 'blue',
opacity: .5
});
{:#detach}
.detach() Remove each element from the DOM, to be reused later |
---|
Returns{_$} The current LightQuery object |
// Example
const forLaterUse = $('p').detach();
{:#each}
.each(callback) Iterate over each element Inside this method, this corresponds to the current element |
---|
callback {Function} The callback function |
Returns{_$} The current LightQuery object |
// Example
$('p').each(function(){
$(this).whatever(); // ...
});
{:#empty}
.empty() Remove all child nodes of each element |
---|
Returns{_$} The current LightQuery object |
// Example
$('p').empty();
{:#eq}
.eq(index) Get the Nth element (a negative N starts counting from the end) |
---|
index {Number} The element index (zero-based) |
Returns{_$} The Nth element's LightQuery object |
// Example
$('p').eq(0);
{:#filter}
.filter(parameter) Filter elements from a selector or a function returning a Boolean |
---|
parameter {String|Function} A selector or a filtering function |
Returns{_$} The filtered LightQuery object |
// Examples
$('p').filter('.red');
$('p').filter(function(){
return $(this).hasClass('red');
});
$('p').filter(element => $(element).hasClass('red'));
{:#find}
.find(selector) Find the descendants of each element corresponding to the selector |
---|
selector {String} The selector |
Returns{_$} The corresponding descendants' LightQuery object |
// Example
$('p').find('span');
{:#first}
.first() Get the first element |
---|
Returns{_$} The first element's LightQuery object |
// Example
$('p').first();
{:#get}
.get([index]) Get one or every element |
---|
index {Number} The element index (null to get every element) |
Returns{Element|Element\[\]} The requested element(s) |
// Examples
$('p').get();
$('p').get(0);
{:#has}
.has(parameter) Reduce the elements based on a descendant selector or descendant element |
---|
parameter {String|Element} The selector or element to reduce with |
Returns{_$} The corresponding elements' LightQuery object |
// Examples
$('p').has('span');
$('p').has(specificSpan);
{:#hasClass}
.hasClass(className) Determine if at least one element contains the given class |
---|
className {String} The class name |
Returns{Boolean} True if an element contains the class, False otherwise |
// Example
$('p').hasClass('red');
{:#height}
.height() Get the computed height of the first element |
---|
Returns{Number} The computed height of the first element (px) |
// Example
const height = $('p').height();
{:#hide}
.hide() Hide each element |
---|
Returns{_$} The current LightQuery object |
// Example
$('p').hide();
{:#html}
.html([html]) Get the HTML of the first element or Set each element's HTML |
---|
html {String} The HTML to set |
Returns{_$} The current LightQuery object |
// Examples
const html = $('p').html();
$('p').html(`
<span>This</span>
is
<em>an example.</em>
`);
{:#index}
.index() Get the first element's index in relation to its siblings |
---|
Returns{Number} The index |
// Example
const elementIndex = $('p').index();
{:#insertAfter}
.insertAfter(target) Insert each element after the target(s) |
---|
target {Element|NodeList|Array|String|_$} The target(s) |
Returns{_$} The current LightQuery object |
// Examples
$('p').insertAfter('aside');
$('p').insertAfter(section);
{:#insertBefore}
.insertBefore(target) Insert each element before the target(s) |
---|
target {Element|NodeList|Array|String|_$} The target(s) |
Returns{_$} The current LightQuery object |
// Examples
$('p').insertBefore('aside');
$('p').insertBefore(section);
{:#is}
.is(target) Check if at least one of the elements matches the target |
---|
target {String|Function|Element|_$} The target or Function to match against |
Returns{Boolean} True if at least one of the elements matches the target, False otherwise |
// Examples
$('p').is('.red');
$('p').is(function(){
return $(this).hasClass('red');
});
$('p').is(p => $(p).hasClass('red'));
{:#ajax}
$.ajax(parameter[, settings]) Send an AJAX request |
---|
parameter {String|Object} URL of the request or settings object |
settings {Object} Settings object |
settings.data {Object|FormData} Request data |
settings.dataType {String} Response data type Default: json |
settings.error {Function} Callback for the error event |
settings.headers {Object.<String, String>} Request headers |
settings.method {String} Request headers Default: GET |
settings.success {Function} Callback for the success event |
settings.url {String} Request URL |
Returns{XMLHttpRequest} The XMLHttpRequest |
// Examples
$.ajax('https://whatev.er', {
data: {
example: 1,
test: 'Example'
},
dataType: 'text',
headers: {
'Content-Type': 'application/json'
},
method: 'POST',
success: response => {
console.log(response);
},
error: response => {
console.log(response);
}
});
$.ajax({
url: 'https://whatev.er',
...
});
{:#sget}
$.get(url[, data, success, dataType]) Shorthand for sending a GET AJAX request |
---|
url {String} URL of the request or settings object |
data {Object} Request data |
success {Function} Callback for the success event |
dataType {String} Response data type |
Returns{XMLHttpRequest} The XMLHttpRequest |
// Example
$.get('https://whatev.er', {
example: 1,
test: 'Example'
}, response => {
console.log(response);
}, 'text');
{:#insert}
$.insert(toInsert, position, relativeElements) Shorthand to insert element(s) relative to other(s) |
---|
toInsert {Element|NodeList|Array|String|_$} The element(s) to insert |
position {String} The position of the new element(s) Possible values: `before |
relativeElements {Element|NodeList|Array|String|_$} The element(s) to position from |
Returns{_$} A new LightQuery object containing the inserted nodes |
// Examples
$.insert('p', 'before', 'aside');
$.insert(element, 'start', 'aside');
$.insert('p', 'end', elements);
$.insert('p', 'after', 'aside');
{:#last}
.last() Get the last element |
---|
Returns{_$} The last element's LightQuery object |
// Example
$('p').last();
{:#next}
.next([selector]) Get next immediate sibling. If a selector is provided, doesn't return the sibling if it doesn't match |
---|
selector {String} The sibling selector |
Returns{_$} The next immediate sibling's LightQuery object |
// Examples
$('p').next();
$('p').next('.red');
{:#nextAll}
.nextAll([selector]) Get next siblings. If a selector is provided, doesn't return the siblings if they don't match |
---|
selector {String} The sibling selector |
Returns{_$} The next siblings' LightQuery object |
// Examples
$('p').nextAll();
$('p').nextAll('.red');
{:#not}
.not(target) Remove elements matching the target from the current LightQuery object |
---|
target {Element|NodeList|Array|String|Function|_$} The target or a Function returning a Boolean |
Returns{_$} LightQuery Object containing the elements not matching the target |
// Examples
$('p').not('.blue');
$('p').not(function(){
return !$(this).hasClass('blue');
});
$('p').not(p => !$(p).hasClass('blue'));
{:#off}
.off(events[, selector, handler]) Remove an event handler |
---|
events {String} The events to stop listening to |
selector {String} The selector matching the one used with .on() |
handler {Function} The handler used with .on() |
Returns{_$} The current LightQuery object |
// Examples
$('p').off('click');
$('p').off('click dblclick');
$('p').off('click', 'span');
$('p').off('click', 'span', e => {
...
});
{:#offset}
.offset() Get the coordinates of the first element |
---|
Returns{DOMRect} Object containing the coordinates of the first element. Use .left, .top |
// Examples
const left = $('p').offset().left;
const top = $('p').offset().top;
const {
left: leftOffset,
top: topOffset
} = $('p').offset();
{:#on}
.on(events[, selector], handler[, data]) Add an event handler |
---|
events {String} The events to start listening to |
selector {String} The selector used for event delegation |
handler {Function} The handler for the event(s) |
data {Object} The data to be passed the the handler |
Returns{_$} The current LightQuery object |
// Examples
$('p').on('click', function(){
console.log($(this));
});
$('p').on('click', 'span', function(){
console.log($(this));
});
{:#parent}
.parent([selector]) Get the parent of each element. If a selector is passed, filter those parents |
---|
selector {String} The parent selector |
Returns{_$} The parent(s)' LightQuery object |
// Example
$('p').parent();
{:#parents}
.parents([selector]) Get the ancestors of each element. If a selector is passed, filter those parents |
---|
selector {String} The parents selector |
Returns{_$} The parent(s)' LightQuery object |
// Example
$('p').parents();
{:#prepend}
.prepend(...elements) Prepend content to the end of each element |
---|
elements {Element[]|NodeList[]|Array[]|String[]|_$[]} Elements to be prepended |
Returns{_$} The current LightQuery object |
// Examples
$('p').prepend('<em>Example</em>');
$('p').prepend('span.red');
{:#prependTo}
.prependTo(targets) Prepend each element before the targets |
---|
targets {Element|NodeList|Array|String|_$} Elements to be prepended to |
Returns{_$} The current LightQuery object |
// Examples
$('p').prependTo('div');
$('p').prependTo(section);
{:#prev}
.prev([selector]) Get previous immediate sibling. If a selector is provided, doesn't return the sibling if it doesn't match |
---|
selector {String} The sibling selector |
Returns{_$} The previous immediate sibling LightQuery object |
// Examples
$('p').prev();
$('p').prev('ul');
{:#prevAll}
.prevAll([selector]) Get previous siblings. If a selector is provided, doesn't return the siblings if they don't match |
---|
selector {String} The siblings selector |
Returns{_$} The previous siblings LightQuery object |
// Examples
$('p').prevAll();
$('p').prevAll('ul');
{:#remove}
.remove() Remove each element from the DOM |
---|
Returns{_$} The current LightQuery object |
// Example
$('p').remove();
{:#removeAttr}
.removeAttr(attribute) Remove an attribute from each element |
---|
attribute {String} Attribute name |
Returns{_$} The current LightQuery object |
// Example
$('p').removeAttr('title');
{:#removeClass}
.removeClass(classes) Remove class(es) from each element |
---|
classes {String} Space separated classes to remove |
Returns{_$} The current LightQuery object |
// Examples
$('p').removeClass('red');
$('p').removeClass('blue flash');
{:#replaceAll}
.replaceAll(targets) Replace each target with each element |
---|
targets {Element|NodeList|Array|String|_$} The targets |
Returns{_$} The current LightQuery object |
// Examples
$('p.new').replaceAll('p.old');
$('<p>New content</p>').replaceAll('p');
{:#replaceWith}
.replaceWith(newContent) Replace each element with the new content |
---|
newContent {Element|NodeList|Array|String|_$} The new content |
Returns{_$} The current LightQuery object |
// Examples
$('p.old').replaceWith('p.new');
$('p').replaceWith('<p>New content</p>');
{:#scrollLeft}
.scrollLeft([value]) Get the horizontal scroll value of the first element or set the horizontal scroll value for each element |
---|
value {Number} The new horizontal scroll value |
Returns{Number|_$} The horizontal scroll value of the first element or the current LightQuery object |
// Examples
$('p').scrollLeft();
$('p').scrollLeft(420);
{:#scrollTop}
.scrollTop([value]) Get the vertical scroll value of the first element or set the vertical scroll value for each element |
---|
value {Number} The new vertical scroll value |
Returns{Number|_$} The vertical scroll value of the first element or the current LightQuery object |
// Examples
$('p').scrollTop();
$('p').scrollTop(420);
{:#serialize}
.serialize() Encode each form element as a string |
---|
Returns{String} The serialized value of each element |
// Examples
$('form').serialize();
$('input').serialize();
{:#serializeArray}
.serializeArray() Encode each form element as an array of names and values |
---|
Returns{Object[]} An array of names and values |
// Examples
$('form').serializeArray();
$('input').serializeArray();
{:#show}
.show() Show each element |
---|
Returns{_$} The current LightQuery object |
// Example
$('p').show();
{:#siblings}
.siblings([selector]) Get all siblings. If a selector is provided, doesn't return the siblings if they don't match |
---|
selector {String} The sibling selector |
Returns{_$} The siblings LightQuery object |
// Examples
$('p').siblings();
$('p').siblings('div');
{:#text}
.text([value]) Get/Set the text of each element |
---|
value {String|Function} Text to set or Function returning the text to set |
Returns{String|_$} The text of each element or the current LightQuery object |
// Examples
$('p').text();
$('p').text('Example');
$('p').text(function(){
return 'Example ' + this.id;
});
{:#toggle}
.toggle([force]) Toggle each element's display |
---|
force {Boolean} True to show, False to hide |
Returns{_$} The current LightQuery object |
// Examples
$('p').toggle();
$('p').toggle(true);
$('p').toggle(false);
{:#toggleClass}
.toggleClass(classes) Toggle class(es) for each element |
---|
classes {String} Space separated classes to toggle |
Returns{_$} The current LightQuery object |
// Examples
$('p').toggleClass('red');
$('p').toggleClass('blue flash');
{:#trigger}
.trigger(eventName) Trigger an event for each element |
---|
eventName {String} Event name |
Returns{_$} The current LightQuery object |
// Example
$('p').trigger('click');
{:#unwrap}
.unwrap([selector]) Remove the direct parents of each element, if they match the selector |
---|
selector {String} The parent selector |
Returns{_$} The current LightQuery object |
// Examples
$('p').unwrap();
$('p').unwrap('div');
{:#val}
.val([value]) Get the value of the first element or set the value of each element |
---|
value {Object} The value to set |
Returns{String|_$} The value of the first element or the current LightQuery object |
// Examples
$('#email').val();
$('#email').val('[email protected]');
{:#width}
.width() Get the computed width of the first element |
---|
Returns{Number} The computed width of the first element (px) |
// Example
const width = $('div').width();
{:#wrap}
.wrap(wrapper) Wrap each element |
---|
wrapper {Element|NodeList|Array|String|_$} The wrapper |
Returns{_$} The current LightQuery object |
// Examples
$('p').wrap('<div></div>');
$('p').wrap('section');
$('p').wrap(section);
{:#wrapAll}
.wrapAll(wrapper) Wrap all elements |
---|
wrapper {Element|NodeList|Array|String|_$} The wrapper |
Returns{_$} The current LightQuery object |
// Examples
$('p').wrapAll('<div></div>');
$('p').wrapAll('section');
$('p').wrapAll(section);