user3800924
user3800924

Reputation: 407

Click on a element and get a previously elements text in jquery

<div class='nrOfCopies'>2</div>
<button class='itemRemove'>Remove</button>
$(document).on('click','.itemRemove', function(){
    var num = $(this).closest('.nrOfCopies').text();
    console.log('number = ' + num);
});

The result from the console.log is "number = " (a empty line) way?

Upvotes: 1

Views: 21

Answers (2)

Paul Roub
Paul Roub

Reputation: 36438

.closest() finds parent nodes. You want prev():

$(document).on('click','.itemRemove', function(){
    var num = $(this).prev('.nrOfCopies').text();
    console.log('number = ' + num);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class='nrOfCopies'>2</div>
<button class='itemRemove'>Remove</button>

Upvotes: 1

Rory McCrossan
Rory McCrossan

Reputation: 337560

closest() is used to retreive parent elements, .nrOfCopies is a sibling so try prev():

var num = $(this).prev('.nrOfCopies').text();

Upvotes: 2

Related Questions