Ajout des méthodes items, itemsAtIndex et count
This commit is contained in:
66
src/gsdom.js
66
src/gsdom.js
@@ -6,7 +6,7 @@ window.$_ = (() => {
|
|||||||
* @class GSDom
|
* @class GSDom
|
||||||
*
|
*
|
||||||
* @example
|
* @example
|
||||||
* // Ajout d'une classe `my_class` à tous lel `a`
|
* // Ajout d'une classe `my_class` à tous les `a`
|
||||||
* $_("a").addClass("my_class");
|
* $_("a").addClass("my_class");
|
||||||
* @example
|
* @example
|
||||||
* // Ajout d'une classe `my_class` à tous les `a` enfants de `div#main`
|
* // Ajout d'une classe `my_class` à tous les `a` enfants de `div#main`
|
||||||
@@ -25,8 +25,8 @@ window.$_ = (() => {
|
|||||||
*/
|
*/
|
||||||
class GSDom {
|
class GSDom {
|
||||||
constructor(selector, scope) {
|
constructor(selector, scope) {
|
||||||
this.shortversion = '2.0.0';
|
this.shortversion = '2.1.0';
|
||||||
this.longversion = 'GSDom 2.0.0 by Séb';
|
this.longversion = `GSDom ${this.shortversion} by Séb`;
|
||||||
if (!selector) {
|
if (!selector) {
|
||||||
// On ne va pas plus loin s'il n'y a pas de sélecteur
|
// On ne va pas plus loin s'il n'y a pas de sélecteur
|
||||||
return;
|
return;
|
||||||
@@ -86,7 +86,7 @@ window.$_ = (() => {
|
|||||||
/**
|
/**
|
||||||
* Fonction de rappel la méthode each()
|
* Fonction de rappel la méthode each()
|
||||||
* @callback eachCallback
|
* @callback eachCallback
|
||||||
* @see {@link #each}
|
* @see {@link #each|each}
|
||||||
* @param {HTMLElement} element L'élément du DOM concerné
|
* @param {HTMLElement} element L'élément du DOM concerné
|
||||||
* @param {number} index L'index de l'élément
|
* @param {number} index L'index de l'élément
|
||||||
*/
|
*/
|
||||||
@@ -346,8 +346,8 @@ window.$_ = (() => {
|
|||||||
/**
|
/**
|
||||||
* Fonction de rappel des méthodes on() et onClick()
|
* Fonction de rappel des méthodes on() et onClick()
|
||||||
* @callback evtCallback
|
* @callback evtCallback
|
||||||
* @see {@link #on}
|
* @see {@link #on|on}
|
||||||
* @see {@link #onclick}
|
* @see {@link #onclick|onClick}
|
||||||
* @param {Event} evt L'événement qui s'est produit
|
* @param {Event} evt L'événement qui s'est produit
|
||||||
* @param {HTMLElement} item L'élément du DOM concerné par lévénement
|
* @param {HTMLElement} item L'élément du DOM concerné par lévénement
|
||||||
*/
|
*/
|
||||||
@@ -367,7 +367,9 @@ window.$_ = (() => {
|
|||||||
* Retourne le premier élément trouvé
|
* Retourne le premier élément trouvé
|
||||||
*
|
*
|
||||||
* @example
|
* @example
|
||||||
* let htmlElement = $_("p.paragraphe").first();
|
* let htmlElement = $_("p.paragraphe").first(true);
|
||||||
|
* @example
|
||||||
|
* $_("input.my_class").first().setDisabled();
|
||||||
*
|
*
|
||||||
* @param {Boolean} [isHTMLElement=false] `true` pour obtenir un élément du DOM, `false` pour un Objet GSDom
|
* @param {Boolean} [isHTMLElement=false] `true` pour obtenir un élément du DOM, `false` pour un Objet GSDom
|
||||||
* @returns {HTMLElement} l'élément du DOM trouvé
|
* @returns {HTMLElement} l'élément du DOM trouvé
|
||||||
@@ -379,7 +381,9 @@ window.$_ = (() => {
|
|||||||
* Retourne le dernier élément trouvé
|
* Retourne le dernier élément trouvé
|
||||||
*
|
*
|
||||||
* @example
|
* @example
|
||||||
* let htmlElement = $_("p.paragraphe").last();
|
* let htmlElement = $_("p.paragraphe").last(true);
|
||||||
|
* @example
|
||||||
|
* $_("input.my_class").last().setDisabled();
|
||||||
*
|
*
|
||||||
* @param {Boolean} [isHTMLElement=false] `true` pour obtenir un élément du DOM, `false` pour un Objet GSDom
|
* @param {Boolean} [isHTMLElement=false] `true` pour obtenir un élément du DOM, `false` pour un Objet GSDom
|
||||||
* @returns {(GSDom|HTMLElement)} L'élément du DOM trouvé ou un Objet GSDom correspondant pour chainage
|
* @returns {(GSDom|HTMLElement)} L'élément du DOM trouvé ou un Objet GSDom correspondant pour chainage
|
||||||
@@ -387,6 +391,52 @@ window.$_ = (() => {
|
|||||||
last(isHTMLElement) {
|
last(isHTMLElement) {
|
||||||
return this.found() ? (isHTMLElement === true ? this.elems[this.elems.length - 1] : new GSDom(this.elems[this.elems.length - 1])) : false;
|
return this.found() ? (isHTMLElement === true ? this.elems[this.elems.length - 1] : new GSDom(this.elems[this.elems.length - 1])) : false;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Retourne un tableau des éléments du Dom sélectionnés
|
||||||
|
*
|
||||||
|
* @example
|
||||||
|
* let my_HTMLElements = $_("p.my_class").items();
|
||||||
|
*
|
||||||
|
* @returns {HTMLElement[]} les éléments du DOM sélectionnés
|
||||||
|
*/
|
||||||
|
items() {
|
||||||
|
return this.elems;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Retourne le nombre d'éléments du DOM sélectionnés
|
||||||
|
*
|
||||||
|
* @example
|
||||||
|
* let count = $_("p.my_class").count();
|
||||||
|
*
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
count() {
|
||||||
|
return this.elems.length;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Retourne l'élément à l'index `index` parmi les éléments sélectionnés;
|
||||||
|
*
|
||||||
|
* @example
|
||||||
|
* let htmlElement = $_("p.paragraphe").itemAtIndex(2,true);
|
||||||
|
* @example
|
||||||
|
* $_("input.my_class").itemAtIndex(2).setDisabled();
|
||||||
|
*
|
||||||
|
* @param {Number} index Index de l'élément souhaité
|
||||||
|
* @param {Boolean} [isHTMLElement=false] `true` pour obtenir un élément du DOM, `false` pour un Objet GSDom
|
||||||
|
* @returns {(GSDom|HTMLElement)} L'élément du DOM trouvé ou un Objet GSDom correspondant pour chainage
|
||||||
|
*/
|
||||||
|
itemAtIndex(index, isHTMLElement) {
|
||||||
|
let i = parseInt(index);
|
||||||
|
if (i >= this.count() || i < 0)
|
||||||
|
return false;
|
||||||
|
return isHTMLElement === true ? this.elems[i] : new GSDom(this.elems[i]);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Retourne la version de la bibliothèque
|
||||||
|
*
|
||||||
|
* @param {Boolean} long `true` pour obtenir la version longue
|
||||||
|
* @returns {String} Le numéro de version
|
||||||
|
*/
|
||||||
version(long) {
|
version(long) {
|
||||||
return long === true ? this.longversion : this.shortversion;
|
return long === true ? this.longversion : this.shortversion;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user