Données personnalisées-sélecteur d'attribut ne fonctionne pas
Une idée de pourquoi cela se produit ...
var attr = $(this).data('link');
console.log(attr); //profile_following
console.log($("a[data-target='profile_following']")); //found the object
console.log($("a[data-target='+attr+']")); //[] empty
À l'intérieur d'un gestionnaire de clic, j'ai les lignes ci-dessus!
console.log(attr);
avec succès imprime profile_following
Cependant, si j'essaie de sélectionner un lien avec un attribut de sélecteur et de cette variable comme ceci console.log($("a[data-target='+attr+']"));
il ne peut pas trouver l'élément!
Et le plus étrange chose, après tout, si j'ai coder en dur la ligne comme ça console.log($("a[data-target='profile_following']"));
il trouve l'objet avec succès.
Aucune idée pourquoi la même ligne ne fonctionne pas avec le +attr+
à l'intérieur de l'attribut sélecteur?
- Vous avez à injecter
attr
dans le sélecteur, vous avez donc de délimiter le préfixe et le suffixe de chaînes de caractères entre guillemets ("a[data-target='" + attr + "']"
). Aussi, c'est un doublon de jQuery comment trouver un élément basé sur des données valeur de l'attribut?
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin d'utiliser la concaténation de chaîne pour créer une chaîne avec une valeur de
"a[data-target='profile_following']"
. Vous le faites avec:Dans votre exemple,
+attr+
fait partie de la chaîne parce que vous n'avez jamais fermé et rouvert vos devis.