Avec une entrée typique comme ci-dessous …
Department one
dans ma fonction …
var chksDept = $('input[type=checkbox].actEmail:checked'); var depts = Array(); chksDept.each(function() { depts.push($(this).data('value').toUpperCase()); });
Pourquoi j’ai eu l’erreur:
$(...).data(...).toUpperCase()
n’est pas une fonction?
- Création d’une grid d’images avec jQuery
- Comment obtenir un index de colonne de table en JavaScript connaissant sa classe?
- La bibliothèque JQuery ne fonctionne pas avec Sencha Touch?
- Créer un nouveau répertoire et insérer des données dans Firebase
- Réinitialiser Bootstrap Modal si toutes les étapes du formulaire ne sont pas terminées
Ce dont j’ai besoin, c’est de saisir toutes les données en majuscules.
La valeur renvoyée par this $(this).data('value')
est du type number
. C’est à dire:
console.log(typeof $(this).data('value'));
Vous devez d’abord vérifier s’il s’agit d’un number
, puis le convertir en ssortingng
. Ainsi:
var chksDept = $('input[type=checkbox].actEmail:checked'); var depts = Array(); chksDept.each(function() { var data = $(this).data('value'); if (typeof data === 'number') { data = ""+data; } depts.push(data.toUpperCase()); }); console.log(depts);
En effet, data
méthode data-value='1'
atsortingbut data-value='1'
renvoie un nombre et que l’object Number n’a pas de méthode toUpperCase
, en supposant que vos atsortingbuts toUpperCase
data-*
contiennent des valeurs numériques et non numériques et que vous souhaitez convertir les valeurs non numériques valeurs majuscules, vous pouvez utiliser la méthode attr
place qui renvoie une chaîne.
$(this).attr('data-value').toUpperCase();
Cela se produit lorsque data-*
atsortingbuts data-*
sont mappés sur la propriété dataset
des éléments et qu’il existe une différence entre les propriétés et les atsortingbuts d’un élément.