Abu Nooh
Abu Nooh

Reputation: 856

Update value of closest span by class name if value found in div

I have a div with two spans inside, I am checking to see if a text already exists inside inside that div, if it does then update the text inside of a span.

Here's the structure of my div:

<div class="top-cart-items">

<div class="top-cart-item clearfix">
<div class="top-cart-item-desc">Orange Club
<span class="top-cart-item-price">£2.99</span>
<span class="top-cart-item-quantity">x1</span>
</div>
</div>

<div class="top-cart-item clearfix">
<div class="top-cart-item-desc">Blue Tang
<span class="top-cart-item-price">£2.99</span>
<span class="top-cart-item-quantity">x1</span>
</div>
</div>

<div class="top-cart-item clearfix">
<div class="top-cart-item-desc">Soft Ball
<span class="top-cart-item-price">£3.99</span>
<span class="top-cart-item-quantity">x1</span>
</div>
</div>

</div>

When a string is found inside .top-cart-item-desc I want to update the .top-cart-item-quantity using jQuery. There are a lot of divs and spans with the same names so I am unable to find where the string was found and update that.

This is what I have tried so far.

$('.add').click(function(){
    var name = $(this).attr("data-name");
    var price = parseFloat($(this).attr("data-price"));
    var quantity = 1;
        if($('.top-cart-item-desc').text().indexOf(name) != -1)
            {
            $(this).closest('.top-cart-item-desc span.top-cart-item-quantity').text('15');
            }
});

I have also tried siblings() and find() but none of those worked either.

Here's a fiddle

Upvotes: 0

Views: 59

Answers (1)

Mike Chatsky
Mike Chatsky

Reputation: 171

Try introducing a map variable to store new items added, then you can:

items[item].find('span.top-cart-item-quantity')

link: https://jsfiddle.net/3ajzmLnr/

Upvotes: 1

Related Questions