2015-12-30 6 views
0

В настоящее время я рассмотрел несколько привлекательных способов привлечения клиентов к перспективам, и я наткнулся на разработку сообщения для каждого продукта «в зависимости от его цены».Показать предложение в зависимости от цены продукта

Этот раздел предназначен, главным образом, для Business Catalyst, но может помочь специалист по javascript.

Цель состоит в использовании жидких или некоторые гибкие Javascript на макете малого продукта и рассчитать цену товара, если выше или равно 30 и отобразить вы получили бесплатную доставку этого продукта

I Я в настоящее время использую 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> 

Некоторая помощь очень ценится.

Благодаря

+1

пожалуйста, вы можете показать соответствующий HTML. Кроме того, вам следует рассмотреть возможность использования console.log (parseInt ($ (this) .val())), чтобы узнать, какое значение сравнивается с 30. Возможно, вы получаете NaN от parseInt, и в этом случае вы хотите чтобы проверить это и использовать parseInt только в полях, содержащих числа. –

+1

Возможно, что-то, что вы используете для ввода '{tag_saleprice}', не работает? Попробуйте 'console.log ($ (this) .val())' –

+0

По какой-то причине я ничего не получаю, не можете ли вы разработать код так, как вы думаете, это должно быть – Skwashy

ответ

0

Благодаря кусок кода из Виторино я был в состоянии прийти к четкому точке, но реальная причина, почему он не получил строку правильно было из-за " £ ", который был сгенерирован {tag_saleprice} с использованием .replace (/ [^ 0-9.]/G," ");, что я использовал раньше, я был в состоянии передать значение четкого знаковой «Е», ниже код для тех, кто нуждается в:

$('.price').each(function() { 
var price = $(this).text().replace(/[^0-9\.]/g, ""); 
    if (parseInt(price) >= 30) { 
    $(this).siblings('.get-free').show(); 
    } 
}); 

Demo

1

Используйте текст() вместо val() для элементов без ввода, таких как div. Кроме того, вы должны проверить NaN с использованием isNaN при использовании parseInt, хотя в этом случае желаемый эффект (показывающий бесплатную оценку) не будет возникать, если поле цены было пустым.

if(!isNaN(parseInt($(this).text())) && parseInt($(this).text()) > 30) 

Вот такой Fiddle Demo

+0

Ваша скрипка не работает! – Skwashy

+0

@Skwashy - конечно. Вы смотрите на консольный журнал своего браузера? –

+0

Я добавил элемент html для хранения значения, которое я передавал в console.log, чтобы вы могли видеть результат, не глядя на журнал консоли браузера. вот эта версия: https://jsfiddle.net/21chf5an/2/ –