James
James

Reputation: 1706

jQuery if less than 10 do this, else if 0 do this not working

I'm rather new to JavaScript and I'm having a little problem with this if/then/else if statement. I tried a few things below but am stuck. Does anyone have any ideas?

if (variant.inventory_management == "shopify" && variant.inventory_policy != "continue") {
    if (variant.inventory_quantity < 10) {
      $lowStockAmount.html('Last few remaining! only ' + variant.inventory_quantity + ' left');
    } else if (variant.inventory_quantity < 1)  {
      $lowStockAmount.html("We're sold out, Don't worry! <a href='#'>click here</a> to be notified when it's back in stock.");
    }
  }

I tried == 0 as well but I end up with the same thing: it just shows the last few remaining! only 0 left but if it is 0, I'd like it to show the sold out message.

Upvotes: 0

Views: 2668

Answers (2)

michelgotta
michelgotta

Reputation: 1001

Here is a simplified answer to your problem. If the quantity is 0, show the "We're sold out" info. Else, if the quantity is not 0 but less than 10, show the "Last few remaining" info. Otherwise don't show anything.

var quantity = 10;

if (quantity === 0) {
    console.log("We're sold out, Don't worry! <a href='#'>click here</a> to be notified when it's back in stock.");
} else if (quantity < 10) {
    console.log('Last few remaining! only ' + quantity + ' left');
}

The quantity == "0" will not work, because you're comparing a number with a string.

EDIT: quantity == "0" will work but is not a proper style of comparing two values.

Upvotes: 1

Jon Uleis
Jon Uleis

Reputation: 18649

Think about the logic as it is right now. If variant.inventory_quantity is 0, the "else if" statement will never run, because it will only be checked if variant.inventory_quantity is NOT less than 10.

Here's the fix. Change this line:

if (variant.inventory_quantity < 10) {

to this:

if (variant.inventory_quantity < 10 && variant.inventory_quantity > 0) {

Upvotes: 0

Related Questions