2009-11-05 5 views
0

Ai-je besoin d'échapper d'une manière ou d'une autre à un espace lorsque j'utilise jquery pour sélectionner avec contains/find?jquery ne sélectionne pas de balises d'option lorsque la valeur contient de l'espace

Je suis moquaient ce pardon en sorte que les fautes de frappe ... Si j'ai une balise SELECT qui a quelques options

<select title="animals"> 
<option value="Dog Black">Dog Black</option> 
<option value="Cat Black">Cat Black</option> 
<option value="Dog Brown">Dog Brown</option> 
</select> 

Je suis en train de trouver les options dans cette sélection avec jquery. mais il semble que la méthode "find" ou la fonction "contains" échoue lorsque la valeur transmise à la recherche contient un espace. Par exemple:

Les rendements suivants d'une taille de 2:

$('*[title="animals"]').find("option:contains('Dog')").size() 

Mais retourne 0 whre Je pense 2 ainsi:

$('*[title="animals"]').find("option:contains('Dog B')").size() 

Je suppose que cela a quelque chose à faire avec le sélecteur et il cherche un élément enfant avec "B" ou quelque chose mais je ne suis pas vraiment sûr.

+0

Était un bug dans la version 1.2.6 de jquery, workgin bien sur 1.3.2 ... Désolé :) – Jay

+0

J'ai un problème similaire. J'ai un mélange de texte/valeur avec et sans espaces dans le menu déroulant. En changeant la sélection, la valeur non-espaces est récupérée correctement en utilisant JavaScript/jQuery mais si la valeur a de l'espace, elle renvoie la première valeur dans la liste et même l'index sélectionné est 0. Ce post parle également du même problème - http : //www.neowin.net/forum/topic/748140-jquery-custom-selectbox-not-passing-value-with-spaces/ –

+0

Oui, il semble que ce soit un bug. J'ai trouvé une solution et l'ajoute au site pointé. –

Répondre

0

J'ai testé ce code exact dans une page avec pratiquement rien d'autre, et il renvoie 2 sur les deux fonctions find() dans tous mes navigateurs. Peut-être y a-t-il quelque chose d'autre dans votre code qui interfère avec vos résultats? Peut-être que vous êtes en train de planquer les résultats quelque part et de perdre la trace de la valeur, ou de l'écraser?

Ou peut-être avez-vous déjà compris le problème. : p

+0

Merci pour les tests C'était un bug dans la version 1.2.6 de jquery. 1.3.2 fonctionne bien. Je vous donne le mérite d'avoir aidé :) – Jay

0

Désolé après avoir frappé ma tête pendant des heures, j'ai trouvé aa bug ailleurs dans le code après avoir affiché ce qui a causé le problème, la fermeture de ceci

Questions connexes