2
votes

expression non reconnue utilisant des littéraux de modèle

En exécutant ce code:

if($(`.partslider[data-pathb=${pathb}]`).length > 0){console.log('323');}

J'obtiens le résultat suivant: anima/01/inc.

Maintenant, j'essaye de l'utiliser dans cette fonction:

let pathb = $('.cslideract').attr('data-pathb');
console.log(pathb);

J'obtiens cette erreur:

expression non reconnue: .partslider [data-pathb = anima / 01 / inc /]

J'ai essayé la même chose avec let pathb = 'n'importe quoi' et ça marche, mais ma variable est anima / 01 / inc code >


4 commentaires

Avez-vous essayé de citer votre modèle? (par exemple $ (`.partslider [data-path =" $ {path} "]`) )


Dans l'expression du sélecteur CSS, la valeur de l'attribut doit être entre guillemets.


@Pointy, je ne vois aucun sélecteur css dans mon code


La chaîne que vous passez à jQuery est un sélecteur CSS.


3 Réponses :


3
votes

Comme indiqué dans la documentation jQuery ici , vous devez utiliser des guillemets autour la valeur dans les sélecteurs d'attributs. Essayez ceci:

if($(`.partslider[data-pathb="${pathb}"]`).length > 0){console.log('323');}

Ceci est également vrai pour Sélecteurs d'attributs CSS .


2 commentaires

À peu près sûr que vous ne devez utiliser des guillemets que lorsque vous avez des caractères spéciaux (peut-être non alphanumériques?)


Non, ils sont nécessaires pour les identifiants valides et la page de jQuery indique que vous avez besoin d'une chaîne entre guillemets si ce n'est pas un identifiant valide.



1
votes

Utilisez des guillemets "" entourant le littéral

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="cslideract" data-pathb="anima/01/inc"></div>
<div class="partslider" data-pathb="anima/01/inc"></div>
let pathb = $('.cslideract').attr('data-pathb');
console.log(pathb);


if($(`.partslider[data-pathb="${pathb}"]`).length > 0){console.log('323');}


0 commentaires