JQUERY: erreur non capturée: erreur de syntaxe, expression non reconnue

console.log($('"#'+d+'"')); 

en html j’ai

 

5

eeeeeeeeeeee

Il jette une erreur:

Erreur non capturée: erreur de syntaxe, expression non reconnue: “# 2013-10-23”

Dans le code ci-dessus, j’ai un div avec id="2013-10-23" et lors de l’obtention de cet identifiant, il renvoie une erreur de syntaxe

essayer

 console.log($("#"+d)); 

votre solution passe les guillemets dans le cadre de la chaîne.

Le combo “citation double” + “citation simple” n’est pas nécessaire

 console.log( $('#'+d) ); // single quotes only console.log( $("#"+d) ); // double quotes only 

Les résultats de votre sélecteur sont les suivants:

 $('"#abc"') // -> it'll try to find 
// In css, this would be the equivalent: "#abc"{ /* Wrong */ } // instead of: #abc{ /* Right */ }

Essayez d’utiliser:

 console.log($("#"+d)); 

Cela supprimera les citations supplémentaires que vous utilisiez.

Cela peut aussi arriver dans un safari si vous essayez un sélecteur avec un manquant], par exemple

 $('select[name="something"') 

mais curieusement, ce même sélecteur JQuery avec un support manquant fonctionnera en chrome.

Essayez ceci (ES5)

 console.log($("#" + d)); 

ES6

 console.log($(`#${d}`)); 

Si vous utilisez jQuery 2.1.4 ou une version ultérieure, essayez ceci:

 $("#" + this.d); 

Ou bien, vous pouvez définir var avant de l’utiliser. Cela rend votre code plus simple.

 var d = this.d $("#" + d);