jQuery -使用html5数据属性选择构建对象数组

jQuery - Building object arrays with html5 data attribute selection

本文关键字:构建 对象 数组 选择 数据属性 使用 html5 jQuery      更新时间:2023-09-26

我使用HTML 5数据属性来标记表中的数据行。我需要迭代行并将数据收集到对象集合中。我创建了一个类来表示行数据:

function SomeItem(description, finalPrice, percentDiscount) {
    this.Description = description;
    this.FinalPrice = finalPrice;
    this.PercentDiscount = percentDiscount;
}

触发一个事件,触发该数据的收集。

$.each($('.ItemPriceBox'), function () {
            var uniqueid = $(this).data('uniqueid');
            var finalPrice = $(this).val();
        });

最后一个数据,percentDiscount应该使用data-uniqueid属性来检索。我不知道该怎么做。

我想要……

SomeItem[] items;
$.each($('.ItemPriceBox'), function () {
            var uniqueid = $(this).data('uniqueid');
            var finalPrice = $(this).val();
            var percentDiscount = $('.ItemDiscountBox').where("uniqueid = " + uniqueid);
            items[i] = new SomeItem(uniqueid,finalPrice,percentDiscount);
        });

我该如何解决这个问题?

可能是这样的

var percentDiscount = $(".ItemDiscountBox[uniqueid='"+uniqueid +"']");

代替伪代码where,使用filter:

var percentDiscount = $('.ItemDiscountBox').filter("[uniqueid='" + uniqueid + "']");
$('.ItemPriceBox').each( function (i) {
    var uniqueid = $(this).data('uniqueid');
    var finalPrice = $(this).val();
    var percentDiscount = $('.ItemDiscountBox').filter("[uniqueid='" + uniqueid + "']");
    items[i] = new SomeItem(uniqueid,finalPrice,percentDiscount);
});

也可以用.each()代替jQuery.each()