使用jquery处理循环内的id值

osh3o9ms  于 2023-01-16  发布在  jQuery
关注(0)|答案(1)|浏览(122)

我有一个购物篮列表,这里我用jquery在price increase中将价格乘以数量来显示总价,但是我无法处理循环中span标记中的值。
例如,我增加了名为“x”的产品的数量,名为“y”的产品发生了变化
foreach中span标记:

@foreach (var item in Islemler.GetSepet())
{
  <span id="toplamFiyat" class="badge rounded-pill badge-light-success">
  </span>  
  <input onchange="miktar(this)" data-idd="@item.ID" data-price="@item.SatisFiyat1" type="text" class="quantity-counter" value="@item.Miktar" />                
}

Javascript语言

function miktar(t) {
            var id = ($(t).data('idd'));
            var fiyat = ($(t).data('price'));
            var miktar = $(t).val();
        
            getValue("/Home/SepetGuncelle",
                { 
                  stokID: id, 
                  StokMiktar: miktar, 
                  BirimFiyat: fiyat 
                },
                function (data, err) {
                    toplamFiyat = fiyat * miktar;
                    $("#tt").text("Toplam Fiyat: " + '₺'  
                                  + parseFloat(toplamFiyat, 10).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, "$1,")
                                  .toString());

                })
q43xntqr

q43xntqr1#

你的span id应该是唯一的,但是在你的代码中,所有购物篮中的物品都有一个span,这个span的id是toplamFiyat,这就是你的问题了,你可以这样使用:

@foreach (var item in Islemler.GetSepet())
{
    <span id="toplamFiyat{@item.ID}" class="badge rounded-pill badge-light-success"></span>  
    <input onchange="miktar(this)" data-idd="@item.ID" data-price="@item.SatisFiyat1" type="text" class="quantity-counter" value="@item.Miktar" />
}

你的javascript应该是:

function miktar(t) {
    var id = ($(t).data('idd'));
    var fiyat = ($(t).data('price'));
    var miktar = $(t).val();

    getValue("/Home/SepetGuncelle", 
        { stokID: id, StokMiktar: miktar, BirimFiyat: fiyat },
        function (data, err) {
            var toplamFiyat = fiyat * miktar;
            $("#toplamFiyat" + id).text("Toplam Fiyat: " + '₺' + parseFloat(toplamFiyat, 10).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, "$1,").toString());
        }
    )
}

相关问题