برای کسانی که در آینده ممکنه با مورد مشابه برخورد کنن چند نمونه کد پیوست میکنم.
باید اول مسئله رو به بخش های کوچکتر تقسیم کنیم:
1- انتخاب همه tr هایی که یک input:hidden با value=0 و id (یا name) اونها با Item_ServicePercentage تموم میشه
2- انتخاب همه input:hidden های این tr که id (یا name) اونها با Item_StoreID تموم میشه
3- جمع value همه این inputهای مرحله 2 با هم
این مسئله هم با JavaScript خالص و بدون هیچ کتابخانه و فریمورک (Pure JavaScript یا Vanilla JavaScript) قابل حل هست
و هم با استفاده از کتابخانه jQuery (بطور منطقی چون در این بخش مطرح شده).
1- جاوااسکریپت خالص
let sum = 0;
let inputs = document.querySelectorAll('#Itemdatatable input[id$="Item_ServicePercentage"][value="0"]');
for (i = 0; i < inputs.length; i++) {
let parent = inputs[i].parentElement;
let store = parent.querySelector('input[id$="Item_StoreID"]');
sum += parseInt(store.value);
};
2- جاوااسکریپت خالص
let sum = 0;
document.querySelectorAll('#Itemdatatable input[id$="Item_ServicePercentage"]:not([value="0"])')
.forEach(function (x) {
sum += parseInt(x.parentElement.querySelector('input[id$="Item_StoreID"]').value);
});
3- با استفاده از jQuery
let sum = 0;
$('#Itemdatatable input[id$="Item_ServicePercentage"][value=0]')
.parent()
.find($('input[id$="Item_StoreID"]'))
.each(function () {
sum += parseInt(this.value);
});