/ / Création dynamique de sélecteurs Jquery / possible bug Jquery - jquery

Création dynamique de sélecteurs Jquery / possible bogue Jquery - jquery

Je crée dynamiquement un sélecteur jquery, qui sélectionnera un élément ou un groupe d'éléments par classe, id, nom ou valeur. Mon sélecteur ressemble à ceci:

$("["+type+"="+value+"]")......

qui fonctionne très bien ... la plupart du temps.

Cependant, lorsque je place ce sélecteur dans une fonction, il cesse de fonctionner correctement.

par exemple. cela ne fonctionne pas (même si je le code en dur)

$("[class=thisclass]").....

mais cela fonctionne

$(".thisclass").....

évidemment, je pourrait vérifiez simplement si le type est classe et utilisez la méthode décimale, mais je préfère garder la méthode de sélection cohérente.

Est-ce un bug Jquery? ou est-ce que je manque quelque chose?

Réponses:

1 pour la réponse № 1

Le problème est que [class=abc] ne correspondra qu'à un élément avec la classe "abc" et non "abc def", considérez ceci:

<div class="abc def" />
<div class="abc" />

jQuery

$(".abc"); // will match both div"s
$("[class=abc]"); // will only match the 2. div

Vous pouvez utiliser le sélecteur d'attribut tilde:

// Selects elements that have the specified attribute with a value containing a given word, delimited by spaces.
$("[class~=abc]");  // will match both div"s

1 pour la réponse № 2

Vous devez ajouter des devis autour de votre valeur:

$("["+type+"=""+value+""]")

Va devenir

$("[class="thisclass"]")