Discuss and resolve questions on Liquid, JavaScript, themes, sales channels, and site speed enhancements.
I need to show divs on product page based on selected variant.
I dont want to use variant.id == 'variant name' because its a lot of products with sometimes 3x3 options.
I'm not that good on JS so i cant make it work with contains operator.
var selectCallback = function(variant, selector) {
if (variant) {
if (variant.title contains 'banana') {
$('.banana').css('display', 'block');
} else {
$('.banana').css('display', 'none');
}
}
Solved! Go to the solution
This is an accepted solution.
Try this:
var selectCallback = function(variant, selector) {
if (variant) {
var variantTitle = variant.title;
if (variantTitle.indexOf('banana') !== -1) {
$('.banana').css('display', 'block');
} else {
$('.banana').css('display', 'none');
}
}
This is an accepted solution.
Try this:
var selectCallback = function(variant, selector) {
if (variant) {
var variantTitle = variant.title;
if (variantTitle.indexOf('banana') !== -1) {
$('.banana').css('display', 'block');
} else {
$('.banana').css('display', 'none');
}
}
As Gina mentioned, in JS you can use indexOf or includes, e.g.: variantTitle.includes('banana').
You may want to sanitize first the title string. Take care of whitespace or lower/uppercase variations.
By investing 30 minutes of your time, you can unlock the potential for increased sales,...
By Jacqui Sep 11, 2024We appreciate the diverse ways you participate in and engage with the Shopify Communi...
By JasonH Sep 9, 2024Thanks to everyone who participated in our AMA with 2H Media: Marketing Your Shopify St...
By Jacqui Sep 6, 2024