Autor Zpráva
formáx
Profil *
Mám na stránce záložky typu:

<a name="nejaka_kotva">...</a>

a pomocí JS potřebuju do pole načíst všechny hodnoty atributu <a name="..."></a> z dané stránky.

Jak to mám udělat? dík.
Enyeus
Profil
Co třeba takto?
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script>
var names = [];
$('a').each(function(){
    var name = $(this).attr("name");
    if (name && !in_array(name, names)) {
        names[names.length] = name;
    }
});
function in_array(needle, haystack) {
    for(var i in haystack) {
        if(haystack[i] == needle) return true;
    }
    return false;
}


alert(names);

</script>
Chamurappi
Profil
Reaguji na Enyea:
Kvůli takové trivialitě tahat jQuery? Proč procházíš všechny odkazy? Ten in_array nemusí fungovat správně, protože prochází i vlastnosti přiřazené na Array.prototype.


Reaguji na formáxe:
Seznam všech <a name> je v kolekci document.anchors, takže nejsnazší řešení vypadá třeba takhle:
var names = [];
for(var i = 0; i < document.anchors.length; i++)
  names.push(document.anchors[i].name);
Enyeus
Profil
Chamurappi:
Musím uznat, že tvé řešení je elegantní. document.anchors jsem neznal, takže mi to přišlo jako nejjednodušší řešení. Ještě by se tedy dal upravit selektor na $('a[name!=""]')
_es
Profil
formáx:
pomocí JS potřebuju do pole načíst všechny hodnoty atributu <a name="..."></a> z dané stránky.
K čomu ti to bude? Okrem toho, záložky sa dajú vytvárať aj takto: Odkazy na záložky v HTML » Modernější vložení záložky.

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: