根据产品价格显示报价
Show offer depending on product price
我目前正在寻找一些有吸引力的方式来吸引客户的观点,并且我偶然发现了为每个产品详细说明的信息 "depending on its price"。
本主题主要针对 Business Catalyst,但 javascript 方面的一些专家可能会有所帮助。
目标是在 小型产品布局liquid 或一些灵活的 Javascript =26=] 并计算产品价格(如果高于或等于 30)并显示此产品免费送货
我目前正在使用 jquery 但不工作不知道为什么!?
$('.price').each(function(){
if(parseInt($(this).val()) > 30) {
$('#get-free').show();
}
});
<div class="small-product round-corner">
<div class="im-on-sale-{tag_onsale}">SALE</div>
<div class="photo">{tag_smallimage}</div>
<div class="title lato">{tag_name}</div>
<div class="price lato"><!--Price: -->{tag_saleprice}</div>
<div class="retail-price">{tag_retailprice}</div>
<div class="instock">{tag_instock} IN STOCK</div>
<div id="get-free" style="display: none;">FREE SHIPPING FOR THIS PRODUCT</div>
<!--<div class="add-to-cart-small">{tag_addtocart,<img src="/images/ui-pieces/add-to-cart-small.png" width="25" height="25" />}</div>-->
<div class="lato rating-stars"><span class="smallString" style="display: none;">{tag_itemurl_nolink}</span></div>
<div class="favorite loggedin lato"> {tag_addtofavorites,<div class="grey-link"><img src="/images/ui-pieces/favourites-icon.png" width="15" height="15"> ADD TO FAVORITES</div>, <div class="grey-link"><img src="/images/ui-pieces/close-bt.png" width="15" height="15"> REMOVE FAVORITE}</div>
</div>
非常感谢您的帮助。
谢谢
您应该尝试使用 .text()
(http://api.jquery.com/text/) or .html()
instead of val()
. val()
is used mainly for form input fields (http://api.jquery.com/val/)
对 div 等 non-input 元素使用 text() 而不是 val()。此外,您应该在使用 parseInt 时使用 isNaN 测试 NaN,尽管在这种情况下,如果价格字段为空,则不会出现预期的效果(显示免费定价)。
if(!isNaN(parseInt($(this).text())) && parseInt($(this).text()) > 30)
这是一个Fiddle Demo
感谢 Vitorino 的一段代码,我能够得出一个明确的观点,但它没有正确获取字符串的真正原因是 {[ 生成的“£”符号=18=]} 通过使用我之前使用的 .replace(/[^0-9.]/g, ""); ,我能够将值清除签“£”,有需要的请戳下方二维码:
$('.price').each(function() {
var price = $(this).text().replace(/[^0-9\.]/g, "");
if (parseInt(price) >= 30) {
$(this).siblings('.get-free').show();
}
});
我目前正在寻找一些有吸引力的方式来吸引客户的观点,并且我偶然发现了为每个产品详细说明的信息 "depending on its price"。
本主题主要针对 Business Catalyst,但 javascript 方面的一些专家可能会有所帮助。
目标是在 小型产品布局liquid 或一些灵活的 Javascript =26=] 并计算产品价格(如果高于或等于 30)并显示此产品免费送货
我目前正在使用 jquery 但不工作不知道为什么!?
$('.price').each(function(){
if(parseInt($(this).val()) > 30) {
$('#get-free').show();
}
});
<div class="small-product round-corner">
<div class="im-on-sale-{tag_onsale}">SALE</div>
<div class="photo">{tag_smallimage}</div>
<div class="title lato">{tag_name}</div>
<div class="price lato"><!--Price: -->{tag_saleprice}</div>
<div class="retail-price">{tag_retailprice}</div>
<div class="instock">{tag_instock} IN STOCK</div>
<div id="get-free" style="display: none;">FREE SHIPPING FOR THIS PRODUCT</div>
<!--<div class="add-to-cart-small">{tag_addtocart,<img src="/images/ui-pieces/add-to-cart-small.png" width="25" height="25" />}</div>-->
<div class="lato rating-stars"><span class="smallString" style="display: none;">{tag_itemurl_nolink}</span></div>
<div class="favorite loggedin lato"> {tag_addtofavorites,<div class="grey-link"><img src="/images/ui-pieces/favourites-icon.png" width="15" height="15"> ADD TO FAVORITES</div>, <div class="grey-link"><img src="/images/ui-pieces/close-bt.png" width="15" height="15"> REMOVE FAVORITE}</div>
</div>
非常感谢您的帮助。
谢谢
您应该尝试使用 .text()
(http://api.jquery.com/text/) or .html()
instead of val()
. val()
is used mainly for form input fields (http://api.jquery.com/val/)
对 div 等 non-input 元素使用 text() 而不是 val()。此外,您应该在使用 parseInt 时使用 isNaN 测试 NaN,尽管在这种情况下,如果价格字段为空,则不会出现预期的效果(显示免费定价)。
if(!isNaN(parseInt($(this).text())) && parseInt($(this).text()) > 30)
这是一个Fiddle Demo
感谢 Vitorino 的一段代码,我能够得出一个明确的观点,但它没有正确获取字符串的真正原因是 {[ 生成的“£”符号=18=]} 通过使用我之前使用的 .replace(/[^0-9.]/g, ""); ,我能够将值清除签“£”,有需要的请戳下方二维码:
$('.price').each(function() {
var price = $(this).text().replace(/[^0-9\.]/g, "");
if (parseInt(price) >= 30) {
$(this).siblings('.get-free').show();
}
});