begin process at 2012 05 28 14:42:47
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Trucs & Astuces

 > REMPLACER LE INNERTEXT/TEXTCONTENT SANS SUPPRIMER LES BALISES

REMPLACER LE INNERTEXT/TEXTCONTENT SANS SUPPRIMER LES BALISES


 Information sur la source

Note :
Aucune note
Catégorie :Trucs & Astuces Classé sous :modifier, innerText, textContent Niveau :Débutant Date de création :23/04/2010 Date de mise à jour :23/04/2010 15:16:00 Vu :2 414

Auteur : jdmcreator

Ecrire un message privé
Site perso
Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

 Description

Bonjour,

Cette petite source anodine permet de remplacer un caractère par un autre dans une chaîne. Par contre, la fonction ne remplacera pas la lettre si elle est dans une balise.

Exemple : Je veux remplacer / par \ dans la chaîne suivante:

<span>Tes/t</span>

Une fonction ordinaire aurait retourné

<span>Tes\t<\span>

Cette fonction retournera quant à elle :

<span>Tes\t</span>
<span>Tes/t</span>

Source

  • <script type="text/javascript">
  • function replace_innerHTML(tn,ty,ts){
  • can1=true;
  • can2=true;
  • for(var i=0;i<tn.length;i++){
  • tv=tn.charAt(i);
  • if(tv=="<"){
  • can1=false;
  • }
  • else if(tv=='"' && can2 && !can1){
  • can2=false;
  • }
  • else if(tv=='"' && !can2 && tn.charAt(i-1)!="\\" && !can1){
  • can2=true;
  • }
  • else if(tv=='>' && !can1 && can2){
  • can1=true;
  • }
  • if(tv==ty && can1){
  • yn=new Array();
  • for(var j=0;j<tn.length;j++){
  • yn.push(tn.charAt(j))
  • }
  • yn[i]=ts;
  • tn=yn.join("");
  • }
  • }
  • return tn;
  • }
  • </script>
  • <div onclick="alert(replace_innerHTML(this.innerHTML,'/','\\'))"><span>Tes/t</span></div>
<script type="text/javascript">
function replace_innerHTML(tn,ty,ts){

can1=true;
can2=true;

for(var i=0;i<tn.length;i++){
tv=tn.charAt(i);

if(tv=="<"){
can1=false;
}
else if(tv=='"' && can2 && !can1){

can2=false;

}
else if(tv=='"' && !can2 && tn.charAt(i-1)!="\\" && !can1){
can2=true;

}
else if(tv=='>' && !can1 && can2){
can1=true;

}

if(tv==ty && can1){
yn=new Array();
for(var j=0;j<tn.length;j++){

yn.push(tn.charAt(j))

}

yn[i]=ts;
tn=yn.join("");
}
}


return tn;
}
</script>
<div onclick="alert(replace_innerHTML(this.innerHTML,'/','\\'))"><span>Tes/t</span></div>

 Conclusion

Source sans prétention mais ennuyante et longue à imaginer/coder

Rendez-vous sur mon blog pour plus d'information sur mes prochaines sources


 Historique

23 avril 2010 04:02:12 :
Erreur dans la fonction join et oublie du return
23 avril 2010 15:16:00 :
La fonction ne fonctionnait pas -_- C'est réglé maintenant et j'ai ajouté un exemple.

 Sources du même auteur

Source avec Zip JDMATH-MINI.JS : GÉNÉRATION D'EXPRESSION MATHÉMATIQUE
PARSER LES CARACTÈRES HTML D'UNE STRING
Source avec Zip TIMER : SETTIMEOUT & SETINTERVAL AMÉLIORÉS
RÉPÉTER UN VIDÉO YOUTUBE EN JAVASCRIPT À L'AIDE D'UN MARQUE-...
Source avec Zip 20 ASTUCES POUR PROGRAMMEURS JAVASCRIPT AVANCÉS

 Sources de la même categorie

PARSER LES CARACTÈRES HTML D'UNE STRING par jdmcreator
CONSTRUCTION D'UNE TABLE TRIABLE À PARTIR D'UN TABLEAU 2D par phm
Source avec Zip Source avec une capture SUBDIVISER LE RÉSULTAT D'UNE RECHERCHE EN PAGES par kimmp
Source avec Zip TIMER : SETTIMEOUT & SETINTERVAL AMÉLIORÉS par jdmcreator
Source avec Zip Source avec une capture ONGLETS ET CHANGEMENT INSTANTANÉ DE LA LANGUE par william voirol

 Sources en rapport avec celle ci

Source avec Zip MODIFIER LE CONTENU D'UN DIV AVEC JAVASCRIPT par lecurieux41
MODIFIER SES FEUILLES DE STYLES .CSS À LA VOLÉE AVEC JAVASCR... par Phildepantin
CHANGER DYNAMIQUEMENT LA COULEUR DES SCROLLBARS DANS IE par glork
Source avec Zip CHANGER LA COULEUR DE LA PAGE par glork

Commentaires et avis

Commentaire de era le 24/04/2010 09:43:48

bonne idee
MAIS
je comprends pas une tel source
il existe pas une fonction en js : document.getElementById(id).innerHTML = "mon nouveau text"

Commentaire de jdmcreator le 24/04/2010 17:47:08

En fait, cette fonction ne sert pas à modifier le innerHTML mais à remplacer un caractère par un autre mais en s'assurant qu'il ne fait pas parti d'une balise.

Dans le projet où j'utilise la fonction, je dois remplacer tous les barres obliques (/) par des symboles de division. Seulement, la fonction replace de String, aurait remplacé même les barres obliques de la fermeture de la balise SPAN. Et si j'aurais utilisé document.getElementById(id).innerText, cela aurait effacé toutes les balises.

+ d'info sur le projet ici sur mon blog : http://jdmcreator.110mb.com/blog/index.php?entry=entry100423-020321)

Commentaire de era le 24/04/2010 19:19:33

oui je comprends bien ton probleme
mais pour un code plus propre j aurais fait ca:

algo;

Dans toutes les balises rencontre (fonction recursive)
je recupere le contenu si c est une balise je relance sinon je remplace

ton code est bon mais lourd a mettre en place....

c est juste pour faire avance le schmilblick

Commentaire de jdmcreator le 16/06/2010 01:50:41

Mouais... avec détection des noeuds de Type Text... peut-être que cela se ferait ;)

Commentaire de jdmcreator le 18/06/2010 01:36:12

Bonjour,

J'ai essayé mais c'est presque 2 fois moins rapide que ma technique :/ déjà que je trouve ma méthode peu rapide... Tu pourrais tu me montrer ce que tu veux dire ?

Commentaire de era le 18/06/2010 14:48:39

travail sur le objet avec javascript dom

Commentaire de jdmcreator le 18/06/2010 15:40:30

Ouais c'est ce que je fais.

Je recherchais tous les enfants enfants de l'élément à modifier. Si l'élément enfant avait un type 3 (noeud Texte), je le modifiais sinon je continuais ma recherche. Le prob c'est que c'est 2 fois plus lent :/

Commentaire de era le 18/06/2010 16:07:42

c bizarre envoie ta fonction que j y jette un oeil

Commentaire de jdmcreator le 18/06/2010 19:01:58

Je l'ai supprimé :S Je suis parti pour la fin de semaine, je la referai et je te l'enverrai lorsque je reviendrai.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Peut on modifier une cellule d'un tableau ??? [ par webgagner ] Est-il possible de modifier le contenu d'une celulle d'un tableau apres clic sur un bouton de la celule voisine??? Comment modifier un tableau HTML avec du javascriptJavascript [ par 1000ste ] Bonjour,&gt; J'ai une page HTML avec la description d'un tableau. Je voudrais à l'aide de javascript modifié le contenu d'une zone du tableau avec la Aidez moi ... Plizzzz ... comment modifier un class ...? [ par GuilleW ] j'ai des fichier class que j'arrive a ouvrir grace a Decafé (decompilateur .class qui sauvegarde en .java) et je les recompile avec jk2jk22kjrks un tr Modifier l'aspect d'une fenetre au démarrage sur un "onload" [ par JefffK ] Bonjour,Je voudrais pouvoir modifier l'aspect d'une fenetre c'est à dire : enlever barre de navigation, d'adresse etc.. mais sur un évènement onload ( Je souhaiterais modifier la valeur de l'attribut class sur une balise TD avec Netscape 4.7 [ par zizou100679 ] Je souhaiterais modifier la valeur de l'attribut class sur une balise TD avec Netscape 4.7Voici mon code qui permet de definir un evenement onclick po Propriete Popup [ par Jeho ] Bonjour, j'aimerai savoir quel est la syntaxe precise pour oter le cadre fenetre d'une popup, ou tout simplement modifier la skin du cadre de la popup modifier du html dans une iframe [ par spiderdurden ] spiderdurdenSalut à tous ceci est mon précédent message : J'ai une iframe dans laquelle je Modifier onClick [ par aurelie ] Quelqu'un pourrait-il me dire si c'est possible de modifier l'événement onClick d'un bouton sur la même page. Car j'ai un événement onMouseOver qui ne modifier la couleur de l'ascenseur [ par inconnue ] Salut, j'aimerai savoir comment modifier la couleur de l'ascenseur du navigateur comme ici sur le réseau codes-sources.Merci d'avance ! Formulaire - Modifier le bouton d'un submit par une image [ par poypoy00 ] Bonjour,je souhaiterais modifier un bouton de formulaire de type submit par une image tout en laissant ce dernier en submit. J'ai déjà essayé avec le


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,842 sec (4)

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