[DOM] et tester si un attribut existe

Résolu/Fermé
Yorundr Messages postés 289 Date d'inscription mardi 31 octobre 2006 Statut Membre Dernière intervention 11 juin 2012 - 26 mai 2008 à 12:31
Yorundr Messages postés 289 Date d'inscription mardi 31 octobre 2006 Statut Membre Dernière intervention 11 juin 2012 - 26 mai 2008 à 16:16
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
A voir également:

2 réponses

kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
26 mai 2008 à 13:19
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
Yorundr Messages postés 289 Date d'inscription mardi 31 octobre 2006 Statut Membre Dernière intervention 11 juin 2012 44
26 mai 2008 à 15:37
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
Yorundr Messages postés 289 Date d'inscription mardi 31 octobre 2006 Statut Membre Dernière intervention 11 juin 2012 44
26 mai 2008 à 16:16
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