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ő.