• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Obliczanie wartości javascript

VPS Starter Arubacloud
0 głosów
721 wizyt
pytanie zadane 19 maja 2017 w JavaScript przez `Krzychuu Stary wyjadacz (13,940 p.)
Witam

Powróciłem do starego projektu i mam problem ze skryptem

https://codepen.io/Krzychuu/pen/wdKeXW

co muszę dodać do tego skryptu żeby dla każdego pola obliczało wartość od nowa?

 

pokaże wam jak bym chciał żeby ten skrypt działał
nazwa | sztuk | cena za sztukę | suma

abc     | 2       | 5                      | 10

bca     | 6       | 6                      | 36

bca     | 2       | 2                      | 4

itd.

2 odpowiedzi

+1 głos
odpowiedź 19 maja 2017 przez ShiroUmizake Nałogowiec (46,300 p.)
wybrane 20 maja 2017 przez `Krzychuu
 
Najlepsza

Stwórz sobie obiekt powiedzmy, nazwijmy go Entity:

public class Entity{
constructor(nameProduct,stockProduct,prize){
this.name = nameProduct;
this.stockProduct = stockProduct;
this.prize = prize;
}

}

On będzie przechowywał produkty. Następnie koło tworzenia elementu, dodaj obiekt ProductRepository. W nim będą dokonywane obliczenia.

public class ProductRepository {
{
this.DOMList = querySelector("[data-rowList"];
this.productList = new Array();
}

insert(){
this.DOMList.forEach( (node) => {
var name = node.item(0).value;
itd...
var Product = (name,stock, itd...);
});
}

update(){
this.DomList.forEach((node) =>{
var name = node.item(0).value;
itd...
var productGettingList = this.productList.get(new Number(node.dataset.rowList));
product.setName(name)
itd...
});
}

}

Nasz productCalculator pobiera listę węzłów (z poziomu tr), które pasują do wzorca(szukanego atrybutu) data-rowList, choć dla lepszego działania(czytelności) wypadałoby by zbudować faktorkę, a calculator otrzymuje gotowy Produkt z tej fraktorki. Następnie uruchamiam foreach na kolekcji  , z każdego węzła pytam o ich kolejne węzły  (dzieci) , można by tu użyć również nextSibling, musiałbym stworzyć kolejną pętle do iteracji po nim. Następnie pobieram wartość pakuje do jakieś zmiennej (w sumie może to być obiekt Produkt ale tu wypadałoby zmienić konstruktor, w js-ie nie da się overload konstruktora, da się przeciążyć obiekt ,po prostu tworząc kolejny prototyp, ale nie o to nam chodzi)  , na koniec pakuje do obiektu a następnie go do tablicy. Done.

Gdy następuje zdarzenie click, uruchamia się metoda update i updatuje po kolei wynika (dla zwiększenia wydajności wypadałoby powiedzieć naszemu API, co się właściwie zaktualizowało sprawdzajać zdarzenie focus na kontrolkach).

Pobieram listę znowu  , pobieram obiekt z tablicy. i podmieniam wartości używając getter/setter. KONIEC.

Trochę to skomplikowane, ale myśle sobie poradzisz. Znajdziesz pewnie odpowiedniki z jq.

 

  

 

+1 głos
odpowiedź 19 maja 2017 przez ProgramistaStepek Nałogowiec (27,020 p.)
Musisz w pewien sposób rozróżnić te inputy. Twój kod js generuje za każdym razem ten sam kod. Proponuję więc przy generowaniu nowego wiersza dla każdego elementu dodać id.

Podobne pytania

0 głosów
1 odpowiedź 255 wizyt
pytanie zadane 23 maja 2021 w Matematyka, fizyka, logika przez Metarinda Użytkownik (740 p.)
+1 głos
1 odpowiedź 409 wizyt
0 głosów
1 odpowiedź 266 wizyt
pytanie zadane 10 marca 2021 w PHP przez jakub5812 Nowicjusz (170 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...