Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[WB11] Passer une variable webdev à GetElementById()

4 réponses
Avatar
paratge
Bonjour,

Dans une recherche plein texte, je surligne les mots qui doivent l'être
et je les transforme en lien pour afficher une description de ce mot.

J'ai attribué un id au lien (je ne sais pas si cette pratique est bien
licite en javascript) qui est identique au mot trouvé, de façon à en
récupérer la valeur au onmouseover, afin de pouvoir le transmettre au
serveur pour effectuer ma recherche dans la DB.

J'ai mis une alerte pour voir si je récupérais bien ma valeur, mais tout
ce que j'obtiens c'est "undefined".

Comment passe-t-on une variable à GetElementByid() ?

Voici le code de ma fonction :
function TrouveId(sMot)
{
this.sMot = sMot
var obj = document.getElementById(this.sMot)
alert('le champ a pour valeur : "'+obj.value+'"')
}


Merci d'avance pour votre temps.

4 réponses

Avatar
b.engelmajer
On peut faire plus simple en transmettant simplement le contenu de la
balise lien (<a></a>) avec innerHTML.

<HTML>
<HEAD>
<TITLE> Test </TITLE>
</HEAD>
<BODY>
<a onmouseover="dico(this.innerHTML);">un</a>
<a onmouseover="dico(this.innerHTML);">deux</a>
<a onmouseover="dico(this.innerHTML);">trois</a>
<hr>
<div id=trace></id>
</BODY>
<script>
function dico( sMot )
{
document.getElementById('trace').innerHTML = sMot;
}
</script>
</HTML>
Avatar
b.engelmajer
En fait, il suffit de passer this à la fonction qui utilisera les
valeurs utiles de l'objet comme innerHTML ou href.

<HTML>
<HEAD>
<TITLE> Test </TITLE>
</HEAD>
<BODY>
<a onmouseover="dico(this);" href="http://www.google.fr">un</
a>
<a onmouseover="dico(this);">deux</a>
<a onmouseover="dico(this);">trois</a>
<hr>
<div id='texte'></div>
<div id='lien'></div>
</BODY>
<script>
function dico( sMot )
{
document.getElementById('texte').innerHTML = sMot.innerHTML;
document.getElementById('lien').innerHTML = sMot.href;
}

</script>
</HTML>
Avatar
paratge
a écrit :
En fait, il suffit de passer this à la fonction qui utilisera les
valeurs utiles de l'objet comme innerHTML ou href.

<HTML>
<HEAD>
<TITLE> Test </TITLE>
</HEAD>
<BODY>
<a onmouseover="dico(this);" href="http://www.google.fr">un</
a>
<a onmouseover="dico(this);">deux</a>
<a onmouseover="dico(this);">trois</a>
<hr>
<div id='texte'></div>
<div id='lien'></div>
</BODY>
<script>
function dico( sMot )
{
document.getElementById('texte').innerHTML = sMot.innerHTML;
document.getElementById('lien').innerHTML = sMot.href;
}

</script>
</HTML>



Merci pour ces précisions,

Mais, ce que je n'ai pas dit est la manière dont je génère le lien,
(parcequ' en réalité, malgré tes précisions, j'ai toujours undefined :( )

voila la procédure qui génère le lien : c'est peut être là que je patine...

POUR TOUTE CHAINE sMotclé DE sChaine SEPAREE PAR " "

HLitRecherche(MOTCLE,Mot,Majuscule(sMotclé),hIdentique)
SI HTrouve ALORS
sMotImportant = "<b style=""color:black;background-color:#ffff66"">"
+"<a href=""
onclick=""window.ExecuteLien('IFRM_LOAD_FF,PageDico.BTN_OK');""
onMouseOver=""TrouveId(this.innerHTML);"">" + sMotclé + "</b></a>"
sChaine = Remplace(sChaine,sMotclé,sMotImportant)
i++
FIN
FIN

RENVOYER sChaine


Le principe est de récupérer le mot surligné par cette fonction, pour
afficher la légende dans une cellule rendue visible après avoir trouvé
le contenu dans la DB grace à sMotClé.
Avatar
paratge
a écrit :
En fait, il suffit de passer this à la fonction qui utilisera les
valeurs utiles de l'objet comme innerHTML ou href.

<HTML>
<HEAD>
<TITLE> Test </TITLE>
</HEAD>
<BODY>
<a onmouseover="dico(this);" href="http://www.google.fr">un</
a>
<a onmouseover="dico(this);">deux</a>
<a onmouseover="dico(this);">trois</a>
<hr>
<div id='texte'></div>
<div id='lien'></div>
</BODY>
<script>
function dico( sMot )
{
document.getElementById('texte').innerHTML = sMot.innerHTML;
document.getElementById('lien').innerHTML = sMot.href;
}

</script>
</HTML>



Merci pour ces précisions,

Mais, ce que je n'ai pas dit est la manière dont je génère le lien,
(parcequ' en réalité, malgré tes précisions, j'ai toujours undefined :( )

voila la procédure qui génère le lien : c'est peut être là que je patine...

POUR TOUTE CHAINE sMotclé DE sChaine SEPAREE PAR " "

HLitRecherche(MOTCLE,Mot,Majuscule(sMotclé),hIdentique)
SI HTrouve ALORS
sMotImportant = "<b style=""color:black;background-color:#ffff66"">"
+"<a href=""
onclick=""window.ExecuteLien('IFRM_LOAD_FF,PageDico.BTN_OK');""
onMouseOver=""TrouveId(this.innerHTML);"">" + sMotclé + "</b></a>"
sChaine = Remplace(sChaine,sMotclé,sMotImportant)
i++
FIN
FIN

RENVOYER sChaine


Le principe est de récupérer le mot surligné par cette fonction, pour
afficher la légende dans une cellule rendue visible après avoir trouvé
le contenu dans la DB grace à sMotClé.