JavaScript termék duplikálás megakadályozása
Sziasztok,
az alábbi függvény azt csinálja, hogy nem engedi kétszer felvenni ugyanazt a terméket a kosárba. Most már működik, de miközben gyártottam, belefutottam egy olyan dologba, amit nem igazán értek.. A "for" ciklust ezen végigfuttatva dönti el a program, hogy a paraméterként kapott termék már szerepel -e a kosárban :Amikor először írtam meg ezt a függvényt, a for ciklusban a feltétel "i<=e.length" volt, így az utolsó iterációban olyan tömb index is ellenőrzésre került, amely nem létezett. Ez megváltoztatta a "product_to_cart" változóm addigi "1" értékét, így a soron következő "if" -re már nem teljesült a feltétel. El tudná valaki magyarázni, hogy a két dolognak mi köze van egymáshoz? Miért nem tartotta meg a változóm az értékét? Hiszen mivel az "e[i]" nem létezett, így elvileg az "else" ágba sem futhatott bele, ami megváltoztathatta volna.
■ az alábbi függvény azt csinálja, hogy nem engedi kétszer felvenni ugyanazt a terméket a kosárba. Most már működik, de miközben gyártottam, belefutottam egy olyan dologba, amit nem igazán értek.
- function addtocart(product,price,image) {
- var product_to_cart;
- var e = document.getElementsByClassName("anchors");
- if (e.length>0) {
- for ( i=0; i<e.length; i++) {
- if (e[i].innerHTML != product) {
- product_to_cart = 1;
- } else {
- product_to_cart = 0;
- break;
- }
- }
- if (product_to_cart == 1) {
- cart(product,price,image);
- } else {alert('Már van ilyen termék a kosárban');}
- } else {
- cart(product,price,image);
- }
- };
- var e = document.getElementsByClassName("anchors"); //ennek a hossza megegyezik a kosárban tárolt elemek számával
- for ( i=0; i<e.length; i++) {
- if (e[i].innerHTML != product) {
- product_to_cart = 1;
- } else {
- product_to_cart = 0;
- break;
- }
- }
break
Ez tényleg furcsa és én nem
Nekem chrome alatt jött elő.