Comment entrer une valeur aléatoire dans une zone de texte sans ID?

Je dois entrer une valeur aléatoire dans une zone textarea d'un site Web en utilisant un textarea de graisse, la zone de texte n'a pas d' id donc document.getElementById ne fonctionne pas.

Puis-je utiliser une autre méthode pour faire cela?

Mon HTML actuel montre ma zone de textarea :

 <tr> <td class="tdv pd5"><span class="tbg"> Message</span>&nbsp;</span> </td> <td class="pd5"> <textarea name="inpx_msg" class="msgbox"></textarea> <br /> <div class="tsm">140 characters max.</div> </td> </tr> 

Vous pouvez utiliser element.querySelector si vous souhaitez pouvoir cibler spécifiquement un élément à l'aide d'un sélecteur CSS, semblable à ceci:

 var textArea = document.querySelector('table tr td.pd5 textarea.msgbox'); textArea.value = "My Random Text"; 

Ce qui précède fonctionne sur l'exemple HTML suivant:

 <table> <tbody> <tr> <td class="tdv pd5"><span class="tbg">Message</span>&nbsp;</span> </td> <td class="pd5"> <textarea name="inpx_msg" class="msgbox"></textarea> <br /> <div class="tsm">140 characters max.</div> </td> </tr> </tbody> </table> 

DEMO – Utilisation de element.querySelector


Évidemment, vous pouvez maintenant changer le sélecteur CSS à tout ce que vous souhaitez pour faire correspondre votre hiérarchie DOM. Il existe beaucoup de flexibilité en utilisant element.querySelector .

Utilisez getElementsByName :

 document.getElementsByName("inpx_msg")[0] 

Évidemment, vous devrez vérifier s'il existe, etc.

Il pourrait être utile d'utiliser getElementsByTagName :

 document.getElementsByTagName("textarea")[0] 

Bien sûr, si vous avez plus d'une étiquette textarea, vous devrez les distinguer en fonction des propriétés qu'elles pourraient avoir. Ou, si vous savez que votre zone de texte réside dans un élément spécifique qui a un ID, vous pouvez essayer

 document.getElementById("someparentid").getElementsByTagName("textarea")[0]