Essayez d'échapper à la '
avec une barre oblique inverse
var val = "John\'s cars";
$('#subject input[value="'+val+'"]')
de jQuery
caractères spéciaux dans les sélecteurs
Si vous wis h pour utiliser l'un des méta-caractères décrits ci-dessus en tant que partie littérale d'un nom, vous devez échapper le caractère avec une barre oblique inverse (). Puisque Javascript utilise la barre oblique inverse pour les séquences d'échappement dans les littéraux de chaîne , vous devez utiliser deux barres obliques inverses (\) dans les chaînes de caractères, de sorte qu'une seule barre oblique inversée sera placée dans la chaîne.
Exemple:
"#foo\\:bar"
"#foo\\[bar\\]"
"#foo\\.bar"
La liste complète des caractères qui doivent à échapper: #;&,.+*~':"!^$[]()=>|/
EDIT:
puisque la valeur est dans un chaîne littérale, il doit être à double échappement. Donc, cela fonctionne
var val = "John\\'s cars";
$('#subject input[value="'+val+'"]')
Merci à bobince pour le signaler.
fonctionne comme un charme, merci –