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
|
||||
*
|
||||
* @example
|
||||
* // Ajout d'une classe `my_class` à tous lel `a`
|
||||
* // Ajout d'une classe `my_class` à tous les `a`
|
||||
* $_("a").addClass("my_class");
|
||||
* @example
|
||||
* // Ajout d'une classe `my_class` à tous les `a` enfants de `div#main`
|
||||
@@ -25,8 +25,8 @@ window.$_ = (() => {
|
||||
*/
|
||||
class GSDom {
|
||||
constructor(selector, scope) {
|
||||
this.shortversion = '2.0.0';
|
||||
this.longversion = 'GSDom 2.0.0 by Séb';
|
||||
this.shortversion = '2.1.0';
|
||||
this.longversion = `GSDom ${this.shortversion} by Séb`;
|
||||
if (!selector) {
|
||||
// On ne va pas plus loin s'il n'y a pas de sélecteur
|
||||
return;
|
||||
@@ -86,7 +86,7 @@ window.$_ = (() => {
|
||||
/**
|
||||
* Fonction de rappel la méthode each()
|
||||
* @callback eachCallback
|
||||
* @see {@link #each}
|
||||
* @see {@link #each|each}
|
||||
* @param {HTMLElement} element L'élément du DOM concerné
|
||||
* @param {number} index L'index de l'élément
|
||||
*/
|
||||
@@ -346,8 +346,8 @@ window.$_ = (() => {
|
||||
/**
|
||||
* Fonction de rappel des méthodes on() et onClick()
|
||||
* @callback evtCallback
|
||||
* @see {@link #on}
|
||||
* @see {@link #onclick}
|
||||
* @see {@link #on|on}
|
||||
* @see {@link #onclick|onClick}
|
||||
* @param {Event} evt L'événement qui s'est produit
|
||||
* @param {HTMLElement} item L'élément du DOM concerné par lévénement
|
||||
*/
|
||||
@@ -367,7 +367,9 @@ window.$_ = (() => {
|
||||
* Retourne le premier élément trouvé
|
||||
*
|
||||
* @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
|
||||
* @returns {HTMLElement} l'élément du DOM trouvé
|
||||
@@ -379,7 +381,9 @@ window.$_ = (() => {
|
||||
* Retourne le dernier élément trouvé
|
||||
*
|
||||
* @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
|
||||
* @returns {(GSDom|HTMLElement)} L'élément du DOM trouvé ou un Objet GSDom correspondant pour chainage
|
||||
@@ -387,6 +391,52 @@ window.$_ = (() => {
|
||||
last(isHTMLElement) {
|
||||
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) {
|
||||
return long === true ? this.longversion : this.shortversion;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user