|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Étudiant Inscription : mars 2010 Messages : 96 ![]() |
Bonsoir à vous,
je suis étudiant et ai un TP à faire, je pensais avoir saisi la théorie du javascript, et là je me prends une grande claque, j'espère que vous saurez éclairer ma lanterne. Il s'agit de modifier un fichier .xhtml à l'aide d'un fichier .js qui lui est joint. Le fichier .xhtml est une liste de recettes. Le titre principal est déterminé grâce à <h1> et chaque recette par <h3>. La question est alors de modifier le titre principal, en lui ajoutant le nombre de recettes contenues dans le fichier sous la forme : "titre (3)" (par exemple...). J'ai donc, dans mon fichier .js : Code :
Là j'avoue ne plus rien comprendre. Merci à vous en tout cas! |
||
|
|
00
|
|
|
#2 |
![]() ![]() |
Bonjour,
Dans un premier temps, si tu peux modifier ton post afin d'utiliser les balises CODE pour une meilleure lisibilité. Est-ce que que tu as que ça dans ton code JavaScript ? Peux-tu nous en donner un peu plus ?
__________________
QuickEvent : Prise de rendez-vous rapide pour iPhone/iPad et iPod Touch (AppStore) QuickEvent Lite : Prise de rendez-vous rapide pour iPhone/iPad et iPod Touch (AppStore) ______________________________________________________________________________________ La rubrique Mac - Les cours & tutoriels Mac - Critiques de Livres Mac
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Étudiant Inscription : mars 2010 Messages : 96 ![]() |
Ah bah non, je n'ai que ça, pour faire la tâche qui est demandée...
Limite j'aurais pu juste mettre : Code :
document.getElementsByTagName('h1')[0].textContent += ' (' + document.getElementsByTagName('h3').length + ')'; |
|
|
00
|
|
|
#4 |
|
Invité régulier
![]() Étudiant Inscription : mars 2010 Messages : 96 ![]() |
Rebonsoir, j'ai trouvé la solution... Ou en tout cas une solution.
La balise <script> était écrite entre les balises <head>, je l'ai déplacée juste avant la fermeture de ma balise <body>. Existe t-il un moyen, en laissant la balise <script> entre les balises <head>, de forcer le contenu du fichier .js à n'être interprété qu'en fin de chargement de la page? |
|
|
00
|
|
|
#5 | ||
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 854 ![]() |
chez moi ton code fonctionne nickel ! (enfin, j'ai remplacé "textContent" par "innerHTML" pour être compatible avec IE en plus des autres navigateurs)
à mon avis ton problème est que tu places ton codes javascript avant ton code html (par exemple dans le header) et que donc lors de son exécution les balises <h1> et <h3> n'existent pas encore et sont introuvables par ton code ! donc soit tu places ton code javascript à la fin de ton body (pas recommandé ) soit tu rajoutes une instruction dans ton code javascript signalant qu'il ne soit s'exécuté qu'une fois la page complètement chargée ! comme ceci : Code :
|
||
|
|
00
|
|
|
#6 |
|
Invité régulier
![]() Étudiant Inscription : mars 2010 Messages : 96 ![]() |
Ah bah on a posté en même temps, mais c'est là que t'es balèze!
Tu réponds à une question pas encore posée! Merci! |
|
|
10
|
|
|
#7 | ||
|
Membre Expert
![]() Tlouye Ci Inscription : mars 2004 Messages : 1 450 ![]() |
Sinon la solution la plus commune est d'utiliser l'attribut onload de la balise body (qui a à peu près le même comportement que le window.onload dont parle Willpower) :
Code html :
|
||
|
|
00
|
|
|
#8 |
|
Débutant
Laurent Webmaster Inscription : octobre 2006 Messages : 2 873 ![]() |
D'après moi, c'est exactement la même chose, mais j'ai déjà eu recours au window.onload proposé par Willpower quand j'ai voulu insérer mon code dans un outil générateur de site web dans lequel on n'a pas accès à la balise <body> (et elle ne comporte évidemment aucun attribut).
|
|
|
00
|
|
|
#9 |
![]() ![]() Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur Inscription : mars 2002 Messages : 30 007 ![]() |
ce n'est pas la même chose window != document.body
__________________
Ma page Developpez Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts) Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir... Votre post est résolu ? Alors n'oubliez pas le Tag ![]() ![]() réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr |
|
|
00
|
|
|
#10 |
|
Débutant
Laurent Webmaster Inscription : octobre 2006 Messages : 2 873 ![]() |
Si ce n'est pas pareil est-ce que document.body.onload pourrait remplacer window.onload ?
|
|
|
00
|
|
|
#11 |
![]() ![]() Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur Inscription : mars 2002 Messages : 30 007 ![]() |
oui mais pas a cet endroit là car le document.body n'est pas encore instancié
__________________
Ma page Developpez Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts) Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir... Votre post est résolu ? Alors n'oubliez pas le Tag ![]() ![]() réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr |
|
|
00
|
|
|
#12 | ||
|
Invité régulier
![]() Étudiant Inscription : mars 2010 Messages : 96 ![]() |
J'ai utilisé window.onload, ça marche niquel...
J'en profite pour vous poser une autre question sur laquelle je bloque. On considère un fichier XHTML quelconque, et on souhaite qu'une fois le document chargé, un message "alert", donne le nombre d'éléments "a", directement contenus dans un élément "li"... Moi j'ai fait : Code :
|
||
|
|
00
|
|
|
#13 |
|
Membre Expert
![]() Tlouye Ci Inscription : mars 2004 Messages : 1 450 ![]() |
Y'a eu toute une discussion là dessus : http://www.developpez.net/forums/d10...-nombre-liens/
EDIT : Sinon je ne vois rien d'ostensiblement faux dans ta démarche actuelle. ![]() Essaye d'écrire le nom de la balise en majuscule : ou mieux, de forcer la casse : Code :
if (nodes[j].nodeName.toLowerCase() == 'a') |
|
|
00
|
|
|
#14 |
|
Invité régulier
![]() Étudiant Inscription : mars 2010 Messages : 96 ![]() |
Ah bah oui, c'était juste ça... J'avais zappé que nodeName renvoyait le nom de la balise en majuscule. C'est toujours pour des conneries qu'on se prend la tête ><
Merci à toi! |
|
|
00
|
|
|
#15 | ||
|
Expert Confirmé
![]() danseur Inscription : août 2003 Messages : 2 667 ![]() |
sachant qu'avec ton code, tu totalises tous les liens de tous les li;
et tu peux aussi faire comme ça: Code :
|
||
|
|
00
|
|
|
#16 |
|
Membre Expert
![]() Tlouye Ci Inscription : mars 2004 Messages : 1 450 ![]() |
|
|
|
00
|
|
|
#17 |
|
Expert Confirmé
![]() danseur Inscription : août 2003 Messages : 2 667 ![]() |
ah ben oui dis donc
![]() dire que j'ai raté cette étonnante discussion (non sans point commun avec la présente) bref, je voulais rappeler que boucler sur tous les noeuds est beaucoup moins productif que cibler les tags du type recherché... |
|
|
00
|
|
|
#18 | ||
|
Membre Expert
![]() Tlouye Ci Inscription : mars 2004 Messages : 1 450 ![]() |
Du coup tu aurais mieux fait de l'écrire comme ça :
Code :
|
||
|
|
00
|
|
|
#19 |
![]() ![]() Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur Inscription : mars 2002 Messages : 30 007 ![]() |
__________________
Ma page Developpez Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts) Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir... Votre post est résolu ? Alors n'oubliez pas le Tag ![]() ![]() réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr |
|
|
00
|
|
|
#20 |
|
Expert Confirmé
![]() danseur Inscription : août 2003 Messages : 2 667 ![]() |
oui, absolument, Loceka
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com