11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

j'aimerais pouvoir au chargement de la page attribué un id à chaque div qui on comme id une certaine valeur..
l'id que je voudrais attribuer est le texte de la div..

Exemple
je veux que :
<div id="divtext">Zone</div>

devienne :
<div id="Zone">Zone</div>


j'ai pensé à faire comme ça :

function changerId(id)
{

var element = document.getElementById(id);

element.id = document.innerHTML;

}

mais c'est loin de marcher..
Quelqu'un aurait une piste ? Smiley biggrin
Pour commencer un id doit être unique sur une page ...
là tu as deux div ayant le même innerHTML ce qui risque fort de poser des problèmes par la suite.
De plus utiliser id comme nom de variable c'est aussi chercher les ennuis ...

Dis nous plutot quel est le but ultime de la manoeuvre ?
pourquoi renommer les id ???
Avec jQuery et en espérant que ça soit utilisé à bon escient…

$(function(){
  $("div[ id]").each(function(){
    var $this = $(this);
    $this.attr("id", $this.text());
  });
});

Modifié par Benjamin D.C. (20 Jan 2010 - 13:36)
j'ai un catalogue en pdf et je dois constituer une liste de liens pointant vers chaque type de produit.
Du coup, mon idée a été de l'exporter en format html.
Chaque type de produit et contenu dans une classe ( cls_007 ) et je voudrais insérer un ancrage significatif en changeant le nom de la classe.

Par exemple :

<div style="position:absolute;left:161.57px;top:569.65px" class="cls_007">D3805</div>

deviendrait :

<div style="position:absolute;left:161.57px;top:569.65px" class="D3805">D3805</div>

et je pourrais accéder au produit avec le lien www.monchemin.com/page.html#D3805
Benjamin D.C. a écrit :
Avec jQuery et en espérant que ça soit utilisé à bon escient…

$(function(){
  $("div[ id]").each(function(){
    var $this = $(this);
    $this.attr("id", $this.text());
  });
});


peux tu m'indiquer comment utiliser cette fonction ? je n'ai jamais utilisé jQuery. Smiley confused
"Avec jQuery et en espérant que ça soit utilisé à bon escient…"

Ne pouvant pas changer les elements sur une page hors domaine je ne vois pas quel pourrait etre l'utilisation dévoyée de ce code ???

Sinon c'est le calss ou l'id que tu veux changer ??? on s'y perd là ...
pardon,
en effet c'est la classe qu'il faudrait changer,
mais dans le cas où c'était plus facile avec l'id je comptais insérer un id avec un éditeur.

donc si il y a une solution pour la class ou pour l'id ce serait super dans les deux cas (mais effectivement avec l'id ce serait mieux) .
si au final tu peux avoir plusiers id identique, alors non ne passe pas par l'id

et pour modifier le class c'est .className=obj.innerHTML
maki69380 a écrit :
j'ai un catalogue en pdf et je dois constituer une liste de liens pointant vers chaque type de produit.
Du coup, mon idée a été de l'exporter en format html.
Chaque type de produit et contenu dans une classe ( cls_007 ) et je voudrais insérer un ancrage significatif en changeant le nom de la classe.

Par exemple :

<div style="position:absolute;left:161.57px;top:569.65px" class="cls_007">D3805</div>

deviendrait :

<div style="position:absolute;left:161.57px;top:569.65px" class="D3805">D3805</div>

et je pourrais accéder au produit avec le lien www.monchemin.com/page.html#D3805


C'est plus simple de faire un chercher remplacer dans le code html. De plus les robots indexeurs ne connaissent pas le javascript donc tu perdrais beaucoup au niveau référencement. Smiley cligne

Et pour le code html ça deviendrait :


<div style="position:absolute;left:161.57px;top:569.65px" id="D3805">D3805</div>


P.S. : Quand je vois des styles en ligne dans ce genre ça me fait peur. Smiley sweatdrop
d'accord,merci,
et comment faire pour que cela se fasse pour toutes les div au chargement de la page (ou sur le clic d'un bouton, peu importe) ?
Patidou a écrit :


P.S. : Quand je vois des styles en ligne dans ce genre ça me fait peur. Smiley sweatdrop


T'a raison ça fait peur, c'est une génération automatique de code...
Et pour le référencement, c'est pas très grave, c'est juste une action marketing sur quelques jours.. Smiley smile
SpaceFrog a écrit :
sur le onload lance une fonction qui va boucler sur la collection
getElementsByTagName('div')


merci infiniment SpaceFrog, mais j'essais de me dépatouiller dans javascript, mais en réalité j'y connais rien, et je ne vois pas trop ce que tu veux dire .. Smiley confused