Menu

Probleme d'affichage sur le DOM

Messages postés
5
Date d'inscription
dimanche 3 juin 2018
Dernière intervention
2 décembre 2018
-
Bonjour,
Je suis en train d'apprendre le javascript et je suis sur un exercice qui me pose probleme .. ma compréhension n'étant pas encore parfaite j'ai besoin de pistes pour resoudre ce probleme
Vous pourrez acceder au code ici https://jsfiddle.net/df6n9Lm5/1/
Et le resultat attendu est celui ci https://static.oc-static.com/prod/courses/files/creez-des-pages-web-interactives-avec-javascript/activite1_2.png
Sans me donner la solution, est-ce que quelqu'un pourra m'indiquer mes erreurs et peut être des notions que je dois revoir pour terminer cet exercice et mieux comprendre le fonctionnement
Merci d'avance !


Configuration: Windows / Firefox 63.0
Afficher la suite 

Votre réponse

4 réponses

Messages postés
23607
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 décembre 2018
0
Merci
Bonjour,

1 - Merci de poster ton code directement sur le forum: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code


2 - Si le souci concerne un dysfonctionnement du code, pense à regarder dans la CONSOLE de ton navigateur si il n'y aurait pas d'éventuelles erreurs.

3 - Merci d'expliquer exactement le souci rencontré. En expliquant avec des phrases le comportement attendu et celui constaté... en expliquant en quoi cela ne correspond pas avec ce que tu essais de faire.
Nous balancer deux url sans explication n'a aucun intérêt.....


Commenter la réponse de jordane45
Messages postés
5
Date d'inscription
dimanche 3 juin 2018
Dernière intervention
2 décembre 2018
0
Merci
Très bien alors voici le code en question :
Partie HTML :
<!doctype html>
<html>

<head>
    <meta charset="utf-8">
    <link rel="stylesheet" href="../css/liensweb.css">
    <title>Activité 1</title>
</head>

<body>
    <h1>Activité 1</h1>

    <!-- Les nouveaux éléments sont ajoutés dans cette balise -->
    <div id="contenu">
    </div>

    <script src="../js/liensweb.js"></script>
</body>

</html>

Partie CSS:
body {
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    background-color: #eee;
    margin-left: 30px;
    margin-right: 30px;
}

span {
    font-weight: normal;
    font-size: 80%;
}

.lien {
    background: white;
    padding: 10px;
    margin-bottom: 10px;
}

Et enfin partie Javascript:
/* 
Activité 1


*/

// Liste des liens Web à afficher. Un lien est défini par :
// - son titre
// - son URL
// - son auteur (la personne qui l'a publié)
var listeLiens = [
    {
        titre: "So Foot",
        url: "http://sofoot.com",
        auteur: "yann.usaille"
    },
    {
        titre: "Guide d'autodéfense numérique",
        url: "http://guide.boum.org",
        auteur: "paulochon"
    },
    {
        titre: "L'encyclopédie en ligne Wikipedia",
        url: "http://Wikipedia.org",
        auteur: "annie.zette"
    }
];

// TODO : compléter ce fichier pour ajouter les liens à la page web

var divElt = document.createElement("div"); // Création de la liste

// Pour chaque mot, on construit une balise avec le terme et une balise avec sa définition
listeLiens.forEach(function () {
    var divSoFoot = document.createElement("div");
    divSoFoot.id = "foot";
    var divGuide = document.createElement("div");
    divGuide.id = "guide";
    var divWiki = document.createElement("div");
    divWiki.id = "wiki"

    var titreElts = document.createElement("p");
    titreElts.textContent = listeLiens.titre;
    var lienElts = document.createElement("a");
    lienElts.textContent = listeLiens.url;
    lienElts.href = listeLiens.url;
    var auteurElts = document.createElement("p");
    auteurElts.textContent = listeLiens.auteur;

    divSoFoot.appendChild(titreElts);
    divSoFoot.appendChild(lienElts);
    divSoFoot.appendChild(auteurElts);

    divGuide.appendChild(titreElts);
    divGuide.appendChild(lienElts);
    divGuide.appendChild(auteurElts);

    divWiki.appendChild(titreElts);
    divWiki.appendChild(lienElts);
    divWiki.appendChild(auteurElts);

    divElt.appendChild(divSoFoot);
    divElt.appendChild(divGuide);
    divElt.appendChild(divWiki);

});

document.getElementById("contenu").appendChild(divElt); // Ajout de la liste à la page

EDIT : Ajout des balises de code

________________________________________________________________________________________________

Je dois inserer la liste de liens présente dans javascript en HTML et appliquer des propriétés directement dans le javascript a l'aide de la propriété .style.color ou autre
Pour le moment j'essaye juste d'afficher cette liste avec une div pour chaque option "So foot", "guide", "wiki", ainsi que leur liens et auteur dans le HTML mais je n'y parviens pas

La console ne m'affiche pas de problemes particulier mais je pense qu'il doit y avoir des erreurs évidents pour vous mais pas assez pour moi visiblement, donc si vous pouviez m'indiquer mes erreurs et des pistes pour que je puisse les résoudre par moi même ça serait sympa :)
Commenter la réponse de Frank_N
Messages postés
23607
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 décembre 2018
0
Merci
Déjà.. tu aurais pu mettre les balises de code comme je te l'avais demandé (voir le lien que je t'avais donné.....)
Ensuite, ton problème se trouve dans ta boucle
listeLiens.forEach(function (el) {
    var divSoFoot = document.createElement("div");
    divSoFoot.id = "foot";
    var divGuide = document.createElement("div");
    divGuide.id = "guide";
    var divWiki = document.createElement("div");
    divWiki.id = "wiki"

    var titreElts = document.createElement("p");
    titreElts.textContent = el.titre;
    var lienElts = document.createElement("a");
    lienElts.textContent = el.url;
    lienElts.href = el.url;
    var auteurElts = document.createElement("p");
    auteurElts.textContent = el.auteur;

    divSoFoot.appendChild(titreElts);
    divSoFoot.appendChild(lienElts);
    divSoFoot.appendChild(auteurElts);

    divGuide.appendChild(titreElts);
    divGuide.appendChild(lienElts);
    divGuide.appendChild(auteurElts);

    divWiki.appendChild(titreElts);
    divWiki.appendChild(lienElts);
    divWiki.appendChild(auteurElts);

    divElt.appendChild(divSoFoot);
    divElt.appendChild(divGuide);
    divElt.appendChild(divWiki);

});

Commenter la réponse de jordane45
Messages postés
5
Date d'inscription
dimanche 3 juin 2018
Dernière intervention
2 décembre 2018
0
Merci
Merci beaucoup ! En effet je n'avais pas vraiment declaré la fonction, d'où le probleme ...
jordane45
Messages postés
23607
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 décembre 2018
-
Commenter la réponse de Frank_N