【问题标题】:How to sum data attribute total price from looped select options?如何从循环选择选项中汇总数据属性总价?
【发布时间】:2020-04-20 01:22:00
【问题描述】:

我发现这个话题与我的情况非常接近: how sum data attribute total price?

地点:

function validate(){
    var $selected = $('#mark, #series').children(":selected");
    var sum = 0;

    $selected.each(function() {
        sum += $(this).data('price') || 0;
    });

    $('#total').html(sum === 0 ? '' : sum + '$');
    }
        validate();

    $('#mark, #series').on('change', function() {
        validate();
    });

和:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="mark" name="mark">
    <option value="">--</option>
    <option value="bmw" data-price="200">bmw</option>
    <option value="audi" data-price="400">audi</option>
</select>

<select id="series" name="series">
    <option value="">--</option>
    <option value="series-1" data-price="2000"  >3 series</option>
    <option value="series-1" data-price="3000"  >5 series</option>
</select>

<div id="total"></div>

这些代码完全按照我想要的方式工作,但是,在我的情况下,选择选项实际上是一个选择循环:

for ($i = 1; $i <= $DayCountValue; $i++) 
    echo "<div class='col'><select name='tour" . $i . "[]' id='tour" . $i . "' class='form-control' onChange='tour_price" . $i . "(this.value), tour_name" . $i . "(this.value), tour_description" . $i . "(this.value);'>";
    echo "<option value=''>Select</option>";

    mysqli_fetch_assoc($tour_check);
    foreach ($tour_check as $tour) {

        echo "<option value='" . $tour["price_id"] . "' data-picture='" . $tour["thumbnail"] . "' data-price='" . $tour["price"] . "'>" . $tour["name"] . "</option>";

                }        
        echo "</select></div>";

如何让 javascript 代码从每个选定的选项中获取值?我尝试使用this,但没有成功。

亲切的问候,

【问题讨论】:

  • $("select[id^='tour']") 将是一个开始。

标签: javascript php jquery loops


【解决方案1】:

我解决了,把Javascript代码改成:

function validate(){
    var $selected = $("select").children(":selected");
    var sum = 0;

    $selected.each(function() {
        sum += $(this).data('price') || 0;
    });

    $('#total').html(sum === 0 ? '' : sum + '$');
}
validate();

$("select").on('change', function() {
    validate();
});

我可以从文档中的每个 &lt;select&gt; 获取值。

【讨论】:

    猜你喜欢
    • 2018-01-11
    • 2021-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-06
    • 1970-01-01
    • 1970-01-01
    • 2014-08-31
    相关资源
    最近更新 更多