Question

J'essaie d'exécuter cette fonction, qui saisit toutes les valeurs cochées cochées dans une chaîne séparée par virgule et convertit "," dans ", ", donc ça lit mieux. Le problème est que j'obtiens une erreur étrange:

$('.name_boxes').live('click', function() {
    var all_boxes = $('.name_boxes');
    var all_boxes_values = []
    for (var i = 0; i < all_boxes.length; i++) {
        if (all_boxes[i].checked) {
            all_boxes_values.push(all_boxes[i].value)
        }
    }
    var all_boxes_values_clean = all_boxes_values.replace(/,/g,", ");
    alert(all_boxes_values_clean);
});

L'erreur de la console dit:

Non apparié TypeError: Object Aaron Ramsey, Aaron Renfree n'a pas de méthode «remplacer».

Je n'obtiens pas la boîte à alerte.

C'est un peu au-delà de moi, quelqu'un peut-il expliquer ce que je fais de mal?

Était-ce utile?

La solution

Bien que alert(some_array) Imprime une représentation de chaîne du tableau, le tableau lui-même n'est pas une chaîne. Ainsi, il n'a pas .replace. alert est obligé de le convertir en une chaîne car le boîtier d'alerte ne peut afficher que des caractères.

Vous pouvez simplement rejoindre à l'aide d'un séparateur personnalisé, cependant. join est une fonction des tableaux:

var all_boxes_values_clean = all_boxes_values.join(", ");

En tant que note latérale, je recommande console.log plus de alert parce qu'il:

  1. montre l'objet / tableau réel au lieu d'une représentation de chaîne (particulièrement utile avec des objets au lieu de l'inutile [object Object] vous recevez avec alert)
  2. vous libère de la fermeture de la fenêtre contextuelle à chaque fois
  3. Gardez une trace des autres journaux afin que vous ayez un journal réel de journaux

Autres conseils

all_boxes_values est un tableau, pas des cordes et donc elle n'a pas replace méthode.

Essayer

var all_boxes_values_clean = all_boxes_values.join(", ");

Si vous insistez pour effectuer des expressions régulières, convertissez d'abord un tableau en chaîne: all_boxes_values.toString().

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top