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.
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);