Modifier entête composant [Résolu]

Signaler
Messages postés
162
Date d'inscription
jeudi 11 janvier 2007
Statut
Membre
Dernière intervention
5 novembre 2010
-
Messages postés
162
Date d'inscription
jeudi 11 janvier 2007
Statut
Membre
Dernière intervention
5 novembre 2010
-
Bonjour à vous ! Ces derniers temps j'ai laissé PHP de côté pour développer en .NET

Je n'ai jamais été un grand fan de javascript, je galère depuis qq temps déjà sur un truc qui doit paraître facile pour la plupart des dvlpeurs confirmés.

J'utilise un composant Obout (sur demande expresse de mon chef de projet qui insiste ^^).

Sur mon composant, (aperçu à l'adresse suivante : http://www.obout.com/show/show_playpauseshow.aspx ) je n'ai pas trouver où modifier le caption, texte des numéros d'onglets.

J'utilise donc un script javascript qui, au chargement de la page, va modifier directement l'attribut contenant le caption/texte/value des onglets.

Voici la fonction qui s'en charge :
(petite explication avant tout :
conteneur_onglets est un panel
noeuds
function modifierTexteElement() {

        var noeuds = document.getElementById("Conteneur_onglets").firstChild.firstChild.firstChild;
        noeuds = noeuds.firstChild.firstChild.firstChild.firstChild.firstChild;
        noeuds = noeuds.firstChild.firstChild.firstChild.firstChild.firstChild;
        var lenoeud = noeuds.nextSibling.firstChild.firstChild.firstChild.firstChild;

// alors je sais, c'est pas très propre, mais pour l'instant,
//c'est tout ce que j'ai trouvé pour pointer sur le noeud souhaité ^_^
//=> lenoeud correspond à l'élément contenant le caption/texte que je souhaite modifier.

        var label = document.getElementById("Conteneur_onglets").firstChild.firstChild.firstChild;
        label = label.nextSibling.firstChild.firstChild.firstChild.firstChild;
//=> Label correspond à un

//Ma question ? Comment récupérer l'id de ce span
//afin de pouvoir l'insérer dans lenoeud.firstChild.nodeValue ?
//en effet il n'y a pas de propriété du genre label.id :'(

        while (noeuds ! = null) {
[.........]
            //ici je modifie la valeurs lenoeud.firstChild.nodeValue
            noeuds = noeuds.nextSibling;
        }
    }

Voilà ! Pourquoi c'est l'usinagaz ? Parce qu'au moment de la compilation de mes composants asp.net, le html rendu est  bourré de div et table inutile mdr

Je suis là pour tout complément d'information. (ps si vous jugez que ma source serait mieux placé dans une autre rubrique ou en asp.net merci de m'en informer !)

Bonne journée à vous et merci du temps de lecture que vous m'avez accordé lol
Et encore Merci d'avance ; )

2 réponses

Messages postés
1771
Date d'inscription
vendredi 9 mai 2008
Statut
Modérateur
Dernière intervention
20 novembre 2020
107
bonjour
pour recupere l' id comme tu le dit c'est tonelement .id tu peut aussi utiliser getElementsByTagName('span') qui te donnera un tableau qui contiendra toute les balises span dans lequelles tu poura extraire l'id mais si tu doit modifier du texte c'est nodevalue qu'il faut utiliser il faut qu'il y ai du texte au prealable sinon tu devra cree une node texte de cette facon

monelement.appendChild(document.createTextNode('letexte a afficher'))
Messages postés
162
Date d'inscription
jeudi 11 janvier 2007
Statut
Membre
Dernière intervention
5 novembre 2010

Merci beaucoup Kamza pour ta réponse ! Ca fonctionne ! <3
J'avais déjà testé element.id hier, mais je devais pointer sur un mauvais noeud ...

Par hasard, existe-t-il une fonction recursive qui peut me permettre d'éviter les .firstchild.firstchild.... en chaîne ?

Une autre question : quand tu me dis "getElementsByTagName('span') qui te donnera un tableau qui contiendra toute les balises span" je me demande comment l'on peut retrouver le bon span Merci d'avance ; )