Ajout des méthodes items, itemsAtIndex et count

This commit is contained in:
2022-01-06 10:00:52 +01:00
parent 9d5d9ef35f
commit 9dc314f1eb

View File

@@ -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;
} }