web-dev-qa-db-fra.com

Sélecteur d'élément ou de classe LIKE pour jQuery?

Pour une raison quelconque, j'ai ces classes appelées .main_sub1, .main_sub2 etc. Peu importe pourquoi je ne peux pas avoir .main .sub.

Existe-t-il un moyen avec jQuery, un peu comme il est possible de le faire avec des attributs, pour obtenir les classes contenant main?

67
David Andersson

L'utilisation de $("[class^=main]") sélectionnera tous les éléments dont le nom de classe commence par 'main'. Jetez un oeil à documents jQuery sur les sélecteurs , il existe de nombreuses autres variantes que vous pouvez utiliser, par exemple:

  • [class*=main] sélectionnera les éléments dont le nom de classe contient 'main'
  • [class~=main] sélectionnera les éléments dont le nom de classe a le mot 'main' (délimité par des espaces)
  • [class$=main] sélectionnera les éléments dont le nom de classe se termine par 'main'
165
Tatu Ulmanen

Oui, vous pouvez utiliser un sélecteur d'attribut pour faire correspondre certaines valeurs de l'attribut class.

$('[class^=main]') // class begins with "main"
$('[class*=main]') // class contains "main" anywhere within it
15
Jimmy Cuadra

Dans ce cas, je traiterais simplement l'attribut de classe de la même manière que vous le faites pour un attribut standard.

$("[class*=main]")
3
James Wiseman