Dans ma fonction, je recherche avec jquery tous les éléments d'un carrousel de hibou et je ne prends de l'id que les numéros disponibles. Parce que je n'ai besoin que des numéros d'identification des articles. J'envoie les numéros d'identification via ajax à mon contrôleur php pour un traitement ultérieur.

 var slideArray = $('#categoryInterestCarousel_'+categoryIdOld).find('.interestOwl');
                                    //Step 1: initialize the array
                                    var previewIds = [];

                                    //Step 2: Search for all IDs and add only the id to the array
                                    $(function(){
                                        $(slideArray).each(function(index){
                                            previewIds[index] = $(this).attr('id').replace(/\D/g,'');
                                        });
                                    });

En sortie, j'obtiens le tableau suivant:

array:3 [
  0 => "183"
  1 => "198"
  2 => "201"
]

J'ai besoin du tableau sans guillemets, à quoi il ressemble:

array:3 [
  0 => 183
  1 => 198
  2 => 201
]

Où est mon erreur? Comment supprimer les guillemets?

0
Hello_1234 3 nov. 2019 à 20:13

2 réponses

Ajoutez simplement parseInt () autour de la valeur:

$(function() {
  $(slideArray).each(function(index) {
    previewIds[index] = parseInt($(this).attr('id').replace(/\D/g, ''), 10);
  });
});
0
Constantin Groß 3 nov. 2019 à 17:15

Comme ça - vous devez convertir la chaîne en nombre - j'utilise +

J'ai pris la liberté de rationaliser le code aussi - par exemple pas besoin d'utiliser $(slideArray) car c'est déjà une collection jQuery.

let categoryIdOld =3;
const previewIds = $('#categoryInterestCarousel_' + categoryIdOld)
 .find('.interestOwl')
 .map(function() { return +this.id.replace(/\D/g, ''); })
 .get();

console.log(previewIds)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="categoryInterestCarousel_3">
  <span class="interestOwl" id="x183"></span>
  <span class="somethingElse" id="x999"></span>
  <span class="interestOwl" id="x198"></span>
  <span class="interestOwl" id="x201"></span>
</div>
0
mplungjan 3 nov. 2019 à 17:27