如何从循环选择选项中汇总数据属性总价?

时间:2020-04-20 01:22:00

标签: javascript php jquery loops

我发现这个话题与我的情况非常接近: 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,但没有用。

亲切的问候,

1 个答案:

答案 0 :(得分:0)

我解决了它,将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();
});

在哪里可以从文档的每个<select>中获取值。

相关问题