jQuery para percorrer os elementos com a mesma class

Eu tenho uma carga de divs com o testimonial class e eu quero usar jquery para percorrê-los para verificar cada div se uma condição específica é verdadeira. Se for verdade, deve executar uma ação.

Alguém sabe como eu faria isso?

   

    Use each: ‘ i ‘ é a posição na matriz, obj é o object DOM que você está iterando (também pode ser acessado através do wrapper $(this) da jQuery $(this) ).

     $('.testimonial').each(function(i, obj) { //test }); 

    Verifique a referência da API para mais informações.

    tente isso …

     $('.testimonial').each(function(){ //if statement here // use $(this) to reference the current div in the loop //you can try something like... if(condition){ } }); 

    É muito simples fazer isso sem jQuery nos dias de hoje.

    Sem jQuery:

    Basta selecionar os elementos e usar o método .forEach() para iterar sobre eles:

     var testimonials = document.querySelectorAll('.testimonial'); Array.prototype.forEach.call(testimonials, function(elements, index) { // conditional here.. access elements }); 

    Experimente este exemplo

    Html

     
    Testimonial 1
    Testimonial 2
    Testimonial 3
    Testimonial 4
    Testimonial 5

    Quando queremos acessar esses divs que tem data-index maior que 2 , precisamos desse jquery.

     $('div[class="testimonial"]').each(function(index,item){ if(parseInt($(item).data('index'))>2){ $(item).html('Testimonial '+(index+1)+' by each loop'); } }); 

    Violino de exemplo de trabalho

    você pode fazer assim

     $('.testimonial').each(function(index, obj){ //you can use this to access the current item }); 
     divs = $('.testimonial') for(ind in divs){ div = divs[ind]; //do whatever you want } 

    Você pode fazer isso de forma concisa usando .filter . O exemplo a seguir ocultará todos os divs .testimonial contendo a palavra “alguma coisa”:

     $(".testimonial").filter(function() { return $(this).text().toLowerCase().indexOf("something") !== -1; }).hide(); 

    O eq () do jQuery pode ajudá-lo a percorrer elementos com uma abordagem indexada.

     var testimonialElements = $(".testimonial"); for(var i=0; i 

    Eu posso estar perdendo parte da questão, mas acredito que você pode simplesmente fazer isso:

     $('.testimonial').each(function() { if(...Condition...) { ...Do Stuff... } } 

    Sem jQuery atualizado

     document.querySelectorAll('.testimonial').forEach(function (element, index) { element.innerHTML = 'Testimonial ' + (index + 1); }); 
     
     $('.testimonal').each(function(i,v){ if (condition) { doSomething(); } }); 

    Com um loop for simples:

     var testimonials= $('.testimonial'); for (var i = 0; i < testimonials.length; i++) { // Using $() to re-wrap the element. $(testimonials[i]).text('a'); } 

    Mais preciso:

     $.each($('.testimonal'), function(index, value) { console.log(index + ':' + value); }); 

    Em JavaScript ES6 usando o operador spread ...

     [...document.querySelectorAll('.testimonial')].forEach( el => { el.style.color = 'red'; }); 

    sobre uma coleção semelhante a matriz dada por Element.querySelectorAll()

     [...document.querySelectorAll('.testimonial')].forEach( el => { el.style.color = 'red'; const stuff = `Element ${el.tagName} with ID #${el.id} says: ${el.textContent}`; console.log( stuff ); }); 
     

    This is some text

    Lorem ipsum