Autor Zpráva
_fantomas
Profil
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
_fantomas:
zkus toto
function deleteproduct() {
 
    var product = $(this).attr('href');
 
    console.log(product);
}
Keeehi
Profil
_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
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
_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
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
Chamurappi:
Vďaka, funguje.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: