11521 sujets

JavaScript, DOM et API Web HTML5

bonjour,
je souhaiterais changer les href des encres qui sont directements dans les td de classe "sonata-ba-list-field-text"
et leur mettre l'attribut objectid du TD, le code suivant m'affiche bien "le_objectid" mais comment afficher sa valeur?

    <script>
    $(function(){
        $(".sonata-ba-list-field-text").children().attr("href", "javascript:void(alert('le_objectid'));");
        alert('ok');
    });
    </script>


<td class="sonata-ba-list-field sonata-ba-list-field-text" objectid="2054">
            <a href="/app_dev.php/loue/f/sonette/2054/edit">ancien lien</a>
    </td>
Modérateur
Salut,

Et bien dans un premier temps récupère d'abord tout les TD plutôt que tout les A. Puis tu fait une boucle qui parcours tout les TD et qui fait deux choses : prendre l'id, le coller dans le href de l'enfant.

Ici tu par de l'enfant et tu tente de tout faire en 1 ligne Smiley smile
Bonjour,

Premièrement petit détail, si tu peux gérer l'attribut objectid sur ton td, préfère un attribut data-objectid, ton code devient d'un coup valide Smiley cligne

Et puis ensuite comme te l'a suggéré Laurent, il faut parcourir tous les td avec le each de jQuery, faire référence a ces éléments avec $(this), récupérer l'id avec data('objectid'), et le réimplanter comme tu l'as fait.

Mais j'ai une question, pourquoi ?
Parce que mon code est généré (admin bundle sonata de symfony)
Merci bien
voila le résultat:

    $(function(){
        $('.sonata-ba-list-field-text').each(function() {
            var at = String($(this).attr("objectid"));
            $(this).children().click(function(){
                alert(at);
                $('#ex', window.parent.document).val(at);
                parent.$.fancybox.close();
                return false;
            });
        });

    });