| 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: 9 let
|
|||
0