Modifier entête composant

Résolu
Kikuts Messages postés 159 Date d'inscription jeudi 11 janvier 2007 Statut Membre Dernière intervention 5 novembre 2010 - 6 mai 2009 à 17:03
Kikuts Messages postés 159 Date d'inscription jeudi 11 janvier 2007 Statut Membre Dernière intervention 5 novembre 2010 - 7 mai 2009 à 09:30
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

@karamel Messages postés 1855 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 18 avril 2024 153
6 mai 2009 à 19:32
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'))
3
Kikuts Messages postés 159 Date d'inscription jeudi 11 janvier 2007 Statut Membre Dernière intervention 5 novembre 2010
7 mai 2009 à 09:30
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 ; )
0
Rejoignez-nous