jQuery : sélectionner un élément dont l'ID ou la classe commence ou finit par une chaîne

Il peut arriver que l'on ait besoin de sélectionner un élément dont l'ID ou la classe commence ou finit par un nom défini, pour pouvoir le modifier ou le manipuler.

Évidemment, si il possède un ID ou une classe bien défini, on utilisera son ID ou sa classe. Par contre, si aucune classe n'est définie par exemple, il faudra utiliser une expression régulière (regex).

On peut faire cela très simplement avec jQuery.

Sélectionner tous les éléments dont l'ID commence par toto_

Prenons un petit exemple, nous allons chercher à sélectionner tous les élements dont l'ID commence par toto_:

jQuery('[id^=toto_')

Le signe ^ signifie que l'on se place en début de chaîne dans l'expression régulière. Ensuite, il suffit d'indiquer la chaîne à chercher, c'est-à-dire toto_ dans notre cas.

S'il s'agit d'un champs de formulaire <input>, on trouvera donc:

&lt;input id="toto_01" type="number" />
&lt;input id="toto_02" type="number" />
&lt;input id="toto_03" type="number" />

Sélectionner tous les éléments dont l'ID finit par _toto

Cherchons maintenant à sélectionner tous les éléments dont l'ID finit par _toto:

jQuery('[id$=_toto')

Cette fois, on utilise l'argument $, qui signifie la fin d'une chaîne de caractères.

Exemple concret : remplacer le type de tous les champs de formulaire dont l'ID finit par -money

J'ai récemment eu à modifier le comportement d'une page de réglages d'un plugin pour WooCommerce.

En substance, les champs étaient de type number, ce qui est problématique car ils ne permettent que des nombres entiers. Or, s'agissant d'un système de conversion de devises, il était primordial d'avoir accès à des nombres flottants, avec des virgules.

La solution est de cibler tous les champs finissant par -moneyet d'en changer le type de number à text, ce qui se fait très facilement avec la requête suivante:

jQuery('[id$=-money]').attr('type', 'text');

Et si l'on veut cibler les classes?

Dans les exemples précédents, il suffit de remplacer le mot idpar le mot class.

Flipsyde - Someday

[Chorus]
Someday we gonna rise up on that wind you know
Someday we gonna dance with those lions
Someday we gonna break free from these chains and keep on flyin'

[Verse 1]
They tellin' me it's all good just wait
You know you're gonna be there someday
Sippin' on Jim Beam ok
Gotta get these things one day
Till then do another line you know
Searching for that other high
Stop or I gotta steal then steal
Kill or I'm gonna be killed
I got a sack in my pocket
Conscious yellin' drop it
You know we're gonna lose it someday
And we tryin' to hold it all together but the devil is too clever so
I'm gonna die you gonna die we gonna die Someday one day I said

[Chorus]
Someday we gonna rise up on the wind you know
Someday we gonna dance with those lions
Someday we gonna break free from these chains and keep on flyin'

[Verse 2]
Try to lie but it ain't me Ain't me
Try to look but I can't see
Can't stop right now cause I'm too far and I can't keep goin' cause it's too hard
In the day in the night it's the same thing
On the field on the block it's the same game
On the real if you stop then it's no pain but if you can't feel pain then it's no gain
Rearrange and you change and it's all bad and you try to maintain but you fall back
And you crawl and you slip and you slide down
Wanna make it to the top better start now
So I hold my soul and I die hard
All alone in the night in the graveyard
Someday one day I'm gonna be free and they won't try to kill me for being me
Hey someday

[Chorus]
Someday we gonna rise up on that wind you know
Someday we gonna dance with those lions
Someday we gonna break free from these chains and keep on flyin'

If you know how this is
Gonna see it's not that easy
Don't stop get it till it's done
From where you are or have begun
I said keep on try a little harder to see everything you need to be
Believe in your dreams
That you see when you're asleep

[Chorus]
Someday we gonna rise up on that wind you know
Someday we gonna dance with those lions
Someday we gonna break free from these chains and keep on flyin'

Résoudre l'erreur SSH: Missing privilege separation directory: /run/sshd

Activer SSH sous CPanel photo 4

Sur un nouveau serveur à base d'Ubuntu Server 18.04, j'obtiens cette erreur à la suite d'un test du service ssh:

sshd -t

Could not load host key: /etc/ssh/ssh_host_ed25519_key
Missing privilege separation directory: /run/sshd

Les solutions à ces deux problèmes sont triviales, cela se règle en deux petites commandes.

L'erreur Could not load host key

L'erreur Could not load host key survient lorsque certaines clés SSH n'ont pas été générées lors de l'installation du système d'exploitation du serveur.

Dans le cas du serveur qui nous occupe, il nous manque la clé de chiffrement ED25519 qui doit se trouver à l'adresse /etc/ssh/ssh_host_ed25519_key.

Pour générer toutes les clés de chiffrement SSH manquantes, une seule commande suffit:

ssh-keygen -A

L'argument -A signifie que l'on génère toutes les clés (All keys). Voici le résultat sur le serveur:

ssh-keygen: generating new host keys: ED25519

L'erreur Missing privilege separation directory: /run/sshd

Cette erreur apparaît lorsque le répertoire mentionné - ici /run/sshd - n'a pas été correctement créé. Il suffit de le créer:

mkdir -p /run/sshd

Vérifiez la configuration SSH:

sshd -t

S'il n'y a plus d'erreur, vous pouvez alors redémarrer le service ssh:

service ssh restart

Et voilà, problèmes réglés.

Pin It on Pinterest

Spelling error report

The following text will be sent to our editors: