Ho un sacco di div con la classe testimoniale voglio usare jquery per scorrere attraverso di loro per verificare ogni div se una condizione specifica è vera. Se è vero, dovrebbe eseguire un'azione.
Qualcuno sa come lo farei?
Ho un sacco di div con la classe testimoniale voglio usare jquery per scorrere attraverso di loro per verificare ogni div se una condizione specifica è vera. Se è vero, dovrebbe eseguire un'azione.
Qualcuno sa come lo farei?
Risposte:
Usa ognuna: ' i' è la posizione nell'array, objè l'oggetto DOM che stai ripetendo (è possibile accedere anche tramite il wrapper jQuery $(this)).
$('.testimonial').each(function(i, obj) {
//test
});
Controlla il riferimento api per ulteriori informazioni.
falseinterromperà l'iterazione.
$(this)di accedere all'oggetto ... objessere oggetto DOM non consente di collegare direttamente funzioni ad esempioobj.empty()
prova questo...
$('.testimonial').each(function(){
//if statement here
// use $(this) to reference the current div in the loop
//you can try something like...
if(condition){
}
});
break;non si romperà. Devi usarereturn false;
Al giorno d'oggi è abbastanza semplice farlo senza jQuery.
Basta selezionare gli elementi e utilizzare il .forEach()metodo per scorrere su di essi:
const elements = document.querySelectorAll('.testimonial');
Array.from(elements).forEach((element, index) => {
// conditional logic here.. access element
});
Nei browser più vecchi:
var testimonials = document.querySelectorAll('.testimonial');
Array.prototype.forEach.call(testimonials, function(element, index) {
// conditional logic here.. access element
});
Prova questo esempio
html
<div class="testimonial" data-index="1">
Testimonial 1
</div>
<div class="testimonial" data-index="2">
Testimonial 2
</div>
<div class="testimonial" data-index="3">
Testimonial 3
</div>
<div class="testimonial" data-index="4">
Testimonial 4
</div>
<div class="testimonial" data-index="5">
Testimonial 5
</div>
Quando vogliamo accedere a quelli divsche sono data-indexpiù grandi di 2allora abbiamo bisogno di questo jquery.
$('div[class="testimonial"]').each(function(index,item){
if(parseInt($(item).data('index'))>2){
$(item).html('Testimonial '+(index+1)+' by each loop');
}
});
puoi farlo in questo modo
$('.testimonial').each(function(index, obj){
//you can use this to access the current item
});
Il .eq () di jQuery può aiutarti a attraversare elementi con un approccio indicizzato.
var testimonialElements = $(".testimonial");
for(var i=0; i<testimonialElements.length; i++){
var element = testimonialElements.eq(i);
//do something with element
}
divs = $('.testimonial')
for(ind in divs){
div = divs[ind];
//do whatever you want
}
$(ind).
Con un semplice ciclo per:
var testimonials= $('.testimonial');
for (var i = 0; i < testimonials.length; i++) {
// Using $() to re-wrap the element.
$(testimonials[i]).text('a');
}
Senza jQuery aggiornato
document.querySelectorAll('.testimonial').forEach(function (element, index) {
element.innerHTML = 'Testimonial ' + (index + 1);
});
<div class="testimonial"></div>
<div class="testimonial"></div>
Potrebbe mancare parte della domanda, ma credo che tu possa semplicemente fare questo:
$('.testimonial').each((index, element) => {
if (/* Condition */) {
// Do Something
}
});
Questo utilizza ogni metodo di jQuery: https://learn.jquery.com/using-jquery-core/iterating/
Più preciso:
$.each($('.testimonal'), function(index, value) {
console.log(index + ':' + value);
});
In JavaScript ES6 .forEach ()
su una raccolta NodeList simile a un array fornita daElement.querySelectorAll()
document.querySelectorAll('.testimonial').forEach( el => {
el.style.color = 'red';
console.log( `Element ${el.tagName} with ID #${el.id} says: ${el.textContent}` );
});
<p class="testimonial" id="1">This is some text</p>
<div class="testimonial" id="2">Lorem ipsum</div>
doc..torAll.forEach()sarebbe sufficiente?
[...ArrayLike]è stato usato per il tempo querySelectorTutti non avevano supporto per .forEach. @aabbccsmith
È possibile utilizzare jQuery $ ogni metodo per scorrere tutti gli elementi con testimonial di classe. i => è l'indice dell'elemento nella raccolta e val ti dà l'oggetto di quel particolare elemento e puoi usare "val" per accedere ulteriormente alle proprietà del tuo elemento e controllare la tua condizione.
$.each($('.testimonal'), function(i, val) {
if(your condition){
//your action
}
});