Autor | Zpráva | ||
---|---|---|---|
_fantomas Profil |
#1 · Zasláno: 22. 11. 2016, 11:22:06
Ahoj, mám zoznam produktov a ku každému produkut je odkaz na odstránenie a každy jeden odkaz ma svoj vlastný (href).
Ak sa snažim zobraziť do konzoly ten (href) vždy mi vypíše len prvý odkaz a to s čislom 1. Nechápem to. Neviete kde je problém? function deleteproduct() { var product = $('#testik').attr('href'); console.log(product); } <?php foreach ($cartdata as $cart) : ?> <tr> <td><?=$cart['idproduct'];?></td> <td><?=$cart['quantity'];?></td> <td><?=$cart['price'];?> €</td> <td><a onclick="deleteproduct(); return false;" id="testik" href="<?=$cart['id'];?>"><span class="icon icon-cross"></span></a> </td> </tr> <?php endforeach ?> |
||
Taps Profil |
#2 · Zasláno: 22. 11. 2016, 12:02:27
_fantomas:
zkus toto function deleteproduct() { var product = $(this).attr('href'); console.log(product); } |
||
Keeehi Profil |
#3 · Zasláno: 22. 11. 2016, 12:25:13
_fantomas:
„Nechápem to.“ Je to proto, že atribut id má být na celá stránce unikátní. Kdežto ty ho tam máš několikrát. Než se odkazovat přes idčko, je v tomto případě vhodnější použít to, co napsal Taps. |
||
_fantomas Profil |
#4 · Zasláno: 22. 11. 2016, 12:30:02
Do konzole mi to napiše undefined ... btw neviem či to súvisí ale javascript kod a php kod mam rozlične v iných súboroch.
|
||
Keeehi Profil |
#5 · Zasláno: 22. 11. 2016, 13:12:55
_fantomas:
„Do konzole mi to napiše undefined“ Tak to tam budeš mít někde chybu. „neviem či to súvisí ale javascript kod a php kod mam rozlične v iných súboroch.“ Nesouvisí. Teda problémy teoreticky vzniknout mohou, ale to by jsi v konzoli viděl nějaké chybové hlášky. Vystřelím do prázdna - nenapsal jsi to this náhodou do apostrofů nebo uvozovek? |
||
Chamurappi Profil |
#6 · Zasláno: 22. 11. 2016, 13:22:41
Reaguji na Tapse:
Když funkci volá deleteproduct() , nebude mít naplněné this .
Reaguji na _fantomase: Pokud potřebuješ adresu, předej si rovnou onclick="deleteproduct(this.href)" . Pokud potřebuješ obsah atributu href (což mi přijde trochu divné, ale budiž), tak onclick="deleteproduct(this.getAttribute('href'))" . Do deleteproduct ti přijde jako argument přímo ta hodnota…
Pokud s tím odkazem chceš ve funkci něco provádět (třeba měnit mu třídu), předej si jako argument samotné this .
„vždy mi vypíše len prvý odkaz a to s čislom 1“ Protože hledání selektorem #testik najde jen první výskyt (v tomto jQuery nefunguje jako CSS). I kdyby našlo všechny výskyty (třeba kdybys hledal $("html #testik") ), tak by se ztratila informace, který #testik je ten stisknutý.
|
||
_fantomas Profil |
#7 · Zasláno: 22. 11. 2016, 13:34:48
Chamurappi:
Vďaka, funguje. |
||
Časová prodleva: 8 let
|
0