Beste,


Wat kan ik doen om dezelfde jquery code uit te voeren maar het resultaat anders is?

HTML:

<div class="art-container">
<div class="price">
€<span>119.00</span>
</div>
<div class="ship-text">Voor 22:00 besteld = morgen in huis <span class="changed">(2,50)</span></div>    
</div>

<div class="art-container">
<div class="price">
€<span>19.00</span>
</div>
<div class="ship-text">Voor 22:00 besteld = morgen in huis <span class="changed">(2,50)</span></div>    
</div>


JQUERY:

$(document).ready(function(){
    
var obj = $('.art-container').find('.price span');
if(obj.text() > 20){
$('.ship-text .changed').text('(gratis)');   
}else{
$('.ship-text .changed').text('(2,50)'); 
}

});


Wat nu gebeurt is dat de jquery in verwarring is omdat de HTML van beide precies het zelfde is.

Het resultaat:

€119.00
Voor 22:00 besteld = morgen in huis (2,50)
€19.00
Voor 22:00 besteld = morgen in huis (2,50)


Wat het zou moeten zijn is:

€119.00
Voor 22:00 besteld = morgen in huis (gratis)
€19.00
Voor 22:00 besteld = morgen in huis (2,50)


De code moet dus meerdere keren worden uitgevoerd en dan per container.

Wie kan mij helpen?


Gr. Yoeri
console.log(obj.text());


En zie de fout.
$('.art-container').find('.price span') zou al meerdere resultaten moeten vinden, dus hier zou je direct met een .each() doorheen kunnen lopen?
Beste leden,

Dank voor de reacties, ik heb verschillende dingen geprobeerd maar hij heeft continu dezelfde waardes.

Nu heb ik een each functie gemaakt zodat hij de elementen afgaat, maar zelfs dat werkt niet.

JQUERY:

$(document).ready(function(){
$('.art-container').each(function(){ 
var obj = $('.price span');
if(obj.text() > 20){
$(this).parent().find('.ship-text .changed').text('(gratis)');  
}else{
$(this).parent().find('.ship-text .changed').text('(2,50)'); 
}
});
});

$('.price').each(function () {

    if (parseInt($(this).text()) > 20) {
        $(this).parent().find('.changed').text('(gratis)');
    } else {
        $(this).parent().find('.changed').text('(2,50)');
    }

});


<div class="art-container">
    <div class="price">119.00</div>
    <div class="ship-text">Voor 22:00 besteld = morgen in huis 
		<span class="changed">(2,50)</span>
    </div>
</div>

<div class="art-container">
    <div class="price">19.00</div>
    <div class="ship-text">Voor 22:00 besteld = morgen in huis 
		<span class="changed">(2,50)</span>
    </div>
</div>

Aldus -> https://jsfiddle.net/ygs2tdy3/
Je kan dit ook met PHP bouwen.

Reageren