[DOM] et tester si un attribut existe

Résolu
Yorundr Messages postés 284 Date d'inscription   Statut Membre Dernière intervention   -  
Yorundr Messages postés 284 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
j'ai un noeud de mon abre DOM qui a plusieurs attributs,et j'aimerai tester si un attribut en particulier existe-t-il une fonction comme hasAttributes(), mais qui prendrais un attribut donné en parametre ?
Dans le meme style removeAttribute().

Merci
Configuration: Windows Vista
Firefox 2.0.0.14

2 réponses

  1. kij_82 Messages postés 4102 Date d'inscription   Statut Contributeur Dernière intervention   857
     
    Bonjour,

    Il s'agit de javascript, java, autre langage ?

    En javascript par exemple ça devrait donner ça :
    function testAttribute ( _elemName_, _attrName_ ){
       var elem = document.getElementById(_elemName_);
       var found = false;
       var i = 0;
       if ( elem != null && elem.attributes != null ){
            while ( !found && i < elem.attributes.length ){
               if ( elem.attributes[i].name == _attrName )
                  found = true;
               else
                  i++;
            }
       }
    
      if ( found )
         return elem.attributes[i].value;
      else
         return null;
    }
    


    Cette méthode te retournera la valeur de l'attribut s'il est trouvé, sinon 'null'.
    1
    1. Yorundr Messages postés 284 Date d'inscription   Statut Membre Dernière intervention   44
       
      En fait c'etait en php, j'aurais du le preciser...
      j'ai trouver une fonction qui est cencé le faire :

      http://developer.mozilla.org/fr/docs/DOM:element.hasAttribute

      Seulement quand j'essai d'utiliser cette fonction ca me retourne un code d'erreur :

      Fatal error: Call to undefined method DOMText::hasAttribute()

      Ca veut dire quoi ?
      0
  2. Yorundr Messages postés 284 Date d'inscription   Statut Membre Dernière intervention   44
     
    C'est bon j'ai résolu mon problème, sur cette erreur,

    j'avais écrit :
    $res=$rep->getAttribute("choisit");

    il me marqué mon erreur alors j'ai fait un echo de $rep->nodeType et me suis apercu qu'il me sortait un truc #text (je sais pas ce que c'est,mais je pense que c'est le "<" de la balise.
    donc j'ai juste rajouter un test avant :

    if ("#text"<>$rep->nodeName)

    et tou marche nikel :)
    1