Rendre les mots cliquables en jquery / javascript

Fermé
ephelya Messages postés 286 Date d'inscription mercredi 28 septembre 2011 Statut Membre Dernière intervention 22 février 2023 - 15 févr. 2018 à 20:39
Bonjour,

Je cherche à rendre tous les mots des pages de mon blog privé cliquables pour pouvoir ensuite les sélectionner et les enregistrer dans ma base de données. J'ai donc essayé de les remplacer tous les "un mot" par des <span id=X>un mot</span> pour pouvoir ensuite identifier sur quel mot on a cliqué. J'ignore si c'est la bonne façon de procéder, en tout cas j'arrive bien à récupérer un tableau de tous les mots voulus et de la balise qui doit les remplacer, mais je ne parviens pas à effectuer la modification....

Voici mon code :
	$(function(){
		var array = $("p");
		var nb = $(array).length;
		var i;
		var words = [];
		for (i = 0; i < nb; i++) {

		   $("p:eq("+i+")").attr('id',i);
		   var paragraphe = $("p:eq("+i+")").text();
		   paragraphe = paragraphe.replace(/,/g," ");
		   paragraphe = paragraphe.replace(/\./g," ");
		   paragraphe = paragraphe.replace(/:/g," ");
		   paragraphe = paragraphe.replace(/'/g," ");
		   paragraphe = paragraphe.replace(/\?/g," ");
		   paragraphe = paragraphe.replace(/\!/g," ");
		   paragraphe = paragraphe.split(" "); 

		  // Je récupère mes mots et je définis la balise à mettre à la place
		   for (j=0; j< paragraphe.length; j++)
		   {	
		   		var mot = paragraphe[j]; 
		   		var mot2 = "<span id='"+i+" -"+j+"''>"+mot+"</span>"; 
		   		if (mot.length >2) { words.push(mot+":"+mot2); }		   		
		   }
		}

		$(words).each(function (){
			var search = this.split(":")[0]+" ";
			var replace  = this.split(":")[1]+" ";
			console.log("on tftft "+search+" par "+replace); // à ce stade, j'ai bien toutes les infos voulues...
			document.getElementsByTagName('p').innerHTML.replace(search, replace); // ...mais il ne se passe rien, je ne trouve pas la bonne fonction à utiliser
		});
	});


Merci d'avance pour votre aide ! :-)