选择选项时,汇总属性值和文本

时间:2017-06-21 09:29:40

标签: jquery magento

我朋友网站上的许多产品都有不同的变体。根据您选择的,价格会发生变化。价格代码如下:

    <div id="WA_price">
        <p class="WA_price2">200&nbsp;€</p>
    </div>

当您选择变体时,代码如下所示:

<dd class="last">
    <div class="input-box">
        <select name="super_attribute[149]" id="attribute149" class="required-entry super-attribute-select">
            <option value="">Option wählen…</option>
            <option value="28" price="139" data-label="1000 mm">1000 mm -10&nbsp;€</option>
            <option value="30" price="149" data-label="1200 mm" class="selected">1200 mm</option>
            <option value="32" price="159" data-label="1400 mm">1400 mm +10&nbsp;€</option>
        </select>
    </div>
</dd>

我发现我必须将选项标记中的值添加到<p class="WA_price2">200&nbsp;€</p>中的200欧元。

我无法弄清楚如何获得价格值并将其加到p.WA_price2中的价格中。

我想您首先必须删除&nbps;€,然后将数字作为值,将其添加到价格值并再次插入到p-tag中。

我只知道如何删除&nbsp;€

jQuery(".WA_price2").each(function() {
    var $this = jQuery(this);
    $this.html($this.html().replace(/&nbsp;€/g, ''));
});

我真的需要一些帮助而且无法弄明白。您可以找到我的代码段here

1 个答案:

答案 0 :(得分:1)

您已经知道如何摆脱&nbsp;€

$this.html().replace(/&nbsp;€/g, '')

现在您需要将其解析为数字并将其添加到所选值:

$this.html((parseInt($this.html().replace(/&nbsp;€/g, '')) + parseInt(jQuery("#attribute149").val())) + "&nbsp;€");

我假设您需要将#attribute149的值添加到内部文本的编号中。如果我错了,那么我恳请你创建一个小提琴,你现在拥有的东西以及用户可以用预期结果做的一些场景。

编辑:

这就是JS代码的样子:

var priceContext = jQuery("#WA_price > .WA_price2")
var initialValue = parseInt(priceContext.html().replace(/&nbsp;€/g, ''));

jQuery("#attribute149").change(function() {
    priceContext.html(initialValue + parseInt(jQuery(this).find("option[value=" + jQuery(this).val() + "]").attr("price")) + "&nbsp;€");
});

请参阅Fiddle