2

在做了一些研究之后,我向你寻求一些 jquery 数学帮助。

我想通过“option rel =”更改一个说明产品价格的文本字段

我把html代码放在这里:http: //jsfiddle.net/YjLM7/

因此,如果选择列表状态:

<option selected="selected" rel="price-" value="0">50 x 50 cm</option>

显示标准价格。

如果我将选择列表更改为:

<option rel="price-100" value="1">100 x 100 cm</option>

价格应该增加 100(如果选择了第一个选项,则返回 -100)。

感谢您的帮助!

这里是完整的代码:

<select>
<option selected="selected" rel="price-" value="0">50 x 50 cm</option>

<option rel="price-100" value="1">100 x 100 cm, Price add: €  100,00</option>
</select>

<p>Price</p>
<p><strong>200 €&lt;/strong></p>

<form method="post" action="catalog/category-1/product-1.html">
<input type="hidden" value="" name="productid">
<input type="submit" class="button" value="Add to cart" name="addcart">
</form>

​</p>

4

2 回答 2

1

我会建议一种不同的方法:将商品的实际价格放在 的data-属性中,并根据选择option的内容更改显示的文本。option如果您的下拉菜单有多个选项,这将使其具有更大的灵活性。

HTML:

<select class="item">
    <option selected="selected" data-price="200">50 x 50 cm</option>
    <option data-price="300">100 x 100 cm</option>
    <option data-price="400">150 x 150 cm</option>
</select>

JS:

$('.item').each(function(i,sel) {
    var $sel = $(sel);
    $sel.find('option').each(function(j,opt) {
        var $opt = $(opt),
            optprice = $opt.data('price'),
            selprice = $sel.find('option:selected').data('price'),
            diff = optprice - selprice,
            diffaddsubtr = (diff > 0) ? "- add" : (diff < 0) ? "- subtract" : "",
            diffamount = Math.abs(diff) || "";
        $opt.find('.diffaddsubtr').text(diffaddsubtr).end()
            .find('.diffamount').text(diffamount);
    });
});

​</p>

http://jsfiddle.net/mblase75/YjLM7/5/

于 2012-08-29T13:46:45.600 回答
0

看到这个jsfiddle。

<select>
   <option data-price="" selected="selected" value="0">50 x 50 cm</option>

   <option data-price="100" value="1">100 x 100 cm, Price add: €  100,00</option>
</select>

<p>Price</p>
<p><strong data-price="200">200 €&lt;/strong></p>

<form method="post" action="catalog/category-1/product-1.html">
      <input type="hidden" value="" name="productid">
      <input type="submit" class="button" value="Add to cart" name="addcart">
</form>
​
​

和JS:

$("select").change(function(){
   var price = parseFloat($(this).find("option:selected").data("price"));
   if(isNaN(price))
       price = 0;
   var currPrice = parseFloat($("strong").data("price"));
   $("strong").text(currPrice + price + ' €');
})​

​</p>

于 2012-08-29T13:34:15.303 回答