begin process at 2012 05 29 05:08:52
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript Orienté objet (POO)

 > 

Divers

 > 

DOM, id et position


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

DOM, id et position

jeudi 13 mars 2008 à 17:28:29 | DOM, id et position

Teclis01

Bonzourrrrr

Je fais une petite application pour un jeu en php/mysql/js/.... et j'ai besoin d'un petit coup de pouce pour le DOM
J'ai vogué sur les flots du net pour trouver réponse à ma question mais ai trouvé seulement des éléments.
Alors voyons !

j'ai un tag "ul" dans lequel j'ai 3 "li" ce qui donne ceci

<ul id="ul_1">
   <li id="7">mon 7emeu</li>
   <li id="12">mon 12emeu</li>
   <li id="5">mon 5emeu</li>
</ul>

Maintenant passons au soucis

apres une usine a gaz, j'ai ces informations...

-l'id d'un element li par exemple 12
-l'id de l'ul père ici ul_1

Et maintenant la question qui fache

Comment puis je savoir la position du li au sein de son pere via les informations que j'ai ?
Ici cette position est egale a 1 mais comment le faire via le DOM ?
Me faut il d'autres informations pour trouver sa position?

Merci d'avance

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro

jeudi 13 mars 2008 à 17:57:08 | Re : DOM, id et position

XtremDuke

Réponse acceptée !
Y'a peutetre plus simple mais je suis trop fatigué pour réflechir...

Voilà une proposition :

function getPosition(id_li){
        var lstLI = document.getElementById('id_de_mon_ul').getElementsByTagName('li');
        for(var i=0; i<lstLI.length; i++) if(lstLI[i].id == 'id_li') return i;
        return -1;
}

Remplace 'id_de_mon_ul' par l'identifiant de ton tag UL.
Ensuite tu peus utiliser cette fonction qui va te renvoyer la position de ton LI dans ton UL ou -1 s'il n'existe pas.
jeudi 13 mars 2008 à 17:58:05 | Re : DOM, id et position

XtremDuke

Oups erreur...

if(lstLI[i].id == id_li) return i; //sans les quotes
jeudi 13 mars 2008 à 18:08:00 | Re : DOM, id et position

Teclis01

je voulais justement eviter cette boucle qui me semblait inutile...
En fait je croyais que si on a l'id du père et l'id du fils on aurait pu retrouver directement la position du fils dans son père sans avoir à boucler les fils du père pour retrouver le bon.
Je vais faire comme tu dis mais je restes persuadé qu'il y a une solution plus "optimisée"
Merci en tout cas

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro

jeudi 13 mars 2008 à 19:50:49 | Re : DOM, id et position

PetoleTeam

Membre Club
Réponse acceptée !
Bonjour,
...sans avoir à boucler les fils du père pour retrouver le bon...
possible mais uniquement avec IE et OPERA en utilisant la propriété sourceIndex, sinon la ou les boucles sont inéluctables.
je te livres au passage une fonction que j'avias écrite il y a quelque temps, une autre approche, avec bien plus de lignes de code
//----------------------------------
function Get_Index( parent_, child_){
  var O_parent = document.getElementById( parent_);
  var O_enfant = document.getElementById( child_);
  var Nbr = O_parent.childNodes.length;
  //-- IE, OPERA exclusif
  if( O_parent.sourceIndex){
    return( O_enfant.sourceIndex -O_parent.sourceIndex -1);
  }
  else {
    //-- Les autres
    var k ,i;
    for( i =0, k =0; i < Nbr; i++){
      if( O_parent.childNodes[ i].nodeType == 1){
        if( O_parent.childNodes[ i] == O_enfant){
          return( k);
        }
        k++;
      }
     }
  }
  return( -1);
}

;O)
vendredi 14 mars 2008 à 11:54:36 | Re : DOM, id et position

Teclis01

Merci beaucoup pour l'info
Mais aussi pour la fonction !
Je vais quand même la retailler un peu histoire de ne laisser apparaitre qu'un seul return et d'apporter ma pierre à l'edifice

function Get_Index( sIdParent, sIdChild){
    var oParent = document.getElementById(sIdParent);
    var oChild = document.getElementById(sIdChild);
    var iChilds = oParent.childNodes.length;
    var mReturn=-1;
    //-- IE, OPERA exclusif
    if(oParent.sourceIndex){
        mReturn=oChild.sourceIndex -oParent.sourceIndex -1;
    }
    else {
    //-- Les autres
        var iChildCurrent;
        var iNodePosition=0;
        for(iChildCurrent=0;iChildCurrent<iChilds; iChildCurrent++){
            if( oParent.childNodes[iChildCurrent].nodeType == 1){
                if(oParent.childNodes[iChildCurrent] == oChild){
                    mReturn=iNodePosition;
                    iChildCurrent=iChilds;    //on sort de la boucle proprement
                }
                iNodePosition++;
            }
        }
    }
    return mReturn;
}

Je ne peux tester pour le moment vu que je suis débordé

Bonne Continuation et Merci

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro



Cette discussion est classée dans : question, id, position, dom, ul


Répondre à ce message

Sujets en rapport avec ce message

[DOM] Connaître la position d'un Childnode par rapport à ses siblings [ par mentral ] Bonjour.Je cherche la fonction ou l'attribut qui, appliqué(e) à un childnode, me renvoie sa position. Exemple :            </p Rationaliser une fonction... [ par Grand Mamamouchi ] Bonjour !j'ai ecrit un script qui produit un effet de generique de film (le texte s'evanouit vers le haut et vers le bas de la fenetre). Il fait exact Mozilla et position d'un <div> [ par philagui ] Bonjour,Voila j'utilise le script suivant pour positionner et afficher quelque chose sur une page:function show(calque, id) { document.getElementById( Probléme lié a systeme de drag & drop avec un ul/li [ par destiny ] bonjour,tout d'abort, la liste : ul class="capsulMenuAdminOrder" <span class="attribute-nam Listes select dépendantes [ par alphacrash ] Salut à tous ! Je fais appel à la communauté pour un problème que je rencontre, je pense purement algorithmique. Je souhaite faire en sorte que l'on p position d'un id [ par pqmoltonel ] bonjour, je cherche desespérément une fonction / propriétée qui permet de retourner la position d'un element html quelconque contenant un id:voila le coucou , je suis dans la M...... [ par frvfrvfrvfrv ] salut à tous,j'essaye de faire bouger des div , de facon auto , j'ai deja avancer grace à vous tous. Mais pour la suite j'arrive pas a faire la logiqu probleme avec un select [ par kgadhi ] Bonjour Tout le monde. Je vous explique mon probleme: j'ai un fomulaire avec un select et j'aimerais qu'une fois j'ai choisi ma valeur, la page s'actu Question de débutant... [ par Evangun ] Bonjour à tous,je ne parle que php et j'ai beau chercher, je ne trouve pas la réponse à une question toute bête :j'ai ma variable colorPicker.color et Position du curseur sur une image [ par Xneo ] Salut! J'aurais besoin d'un petit coup de pouce, voir même d'un petit bout de code si possible...Voila, je voulais savoir s'il etait possible sur une


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,577 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales