10858 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
J'ais à extraire tout le texte d'un DIV d'ID="lui" il contient de nombreux symboles de programmation, mais tous sont regroupés par bloc séparés par <ACRU>..... </ACRU>
dés qu' un bloc est terminé par </ACRU> un <ACRU> collé s'ouvre jusque a la fin de ma DIV qui se termine par un fermé </ACRU>
Pour avoir tout mon DIV je fais

var mondiv= document.getElementById("lui");  
var monTexte = mondiv.innerText || mondiv.textContent;


Je ne sais pas et n'ai pas trouvé comment je dois créer (déclarer ?) mon ARRAY et à votre avis, puis-je faire mon SPLIT directement ?
par exemple:

"use strict";
var X=0;
var mondiv = document.getElementById("lui");  
var monTexte = mondiv.innerText || mondiv.textContent;
var monarray= monTexte.split("<");
var Nbr = monarray.length-1;

ou sur une seule ligne, je souhaiterais la syntaxe la plus académique ,merci d'avance
Modifié par Jean-Pierre-Bruneau (06 Jun 2020 - 19:02)
Modérateur
Hello,

Sans html, ton script n'est pas parlant..... <ACRU> fait parti des élément html standard ?
Bonjour,
Désolé, j'aurais du être plus précis, il n'y a qu'un site d'entreprise, qui traite des données pour automate, bref si nous regardons une des pages , (elles sont toutes semblables) ce sont des données (peux importe le contenu ) je dois analyser chaque module contenu entre ces "balises"
et je sais que ce délimiteur fait penser à un sois disant html mais non Smiley smile

Donc ne t’inquiètes pas , mon javascript est dans une page banale HTML5 ayant un DIV à analyser

<div id="lui"><ACRU>A,775b14-72&L75et...</ACRU><ACRU>C325!1525@ping15</ACRU></div>



Voila et moi je veux un array tel que par exemple

monarray[0]="<ACRU>A,775b14-72&L75et...</ACRU>"
Etc...

Voila et merci d'avoir regardé ma question Smiley confused
Modifié par Jean-Pierre-Bruneau (07 Jun 2020 - 02:17)
Modérateur
Jean-Pierre-Bruneau a écrit :

Désolé, j'aurais du être plus précis, il n'y a qu'un site d'entreprise, qui traite des données pour automate, bref si nous regardons une des pages , (elles sont toutes semblables) ce sont des données (peux importe le contenu ) je dois analyser chaque module contenu entre ces "balises"
et je sais que ce délimiteur fait penser à un sois disant html mais non Smiley smile

Donc ne t’inquiètes pas , mon javascript est dans une page banale HTML5 ayant un DIV à analyser


oui mais c'est pas standard. Donc sensiblement enclin à du bug... bref...

let acrusContentList = []
document.querySelectorAll('ACRU').forEach(($acru)=>acrusContentList.push($acru.outerHTML))
console.log(acrusContentList);


@papyJP : +1 pour ton commentaire
Modifié par niuxe (07 Jun 2020 - 11:17)
Modérateur
Bonjour,

finalement je poste ma réponse qui me convenait à moitié.
J'aurais fais quelque chose du genre :
const liste= [];
for (let acrus of document.querySelectorAll('#lui >*')) {//on sélectionne les enfants directs
  let tag = acrus.tagName;// ressort le nom de l’élément, réutilisable pour n'importe quel élément HTML ou pas...
  let toPush = '<'+tag+'>' + acrus.textContent +'</'+tag+'>';// ajout des tags et contenu texte
  liste.push(toPush);//alimente le tableau
}
console.log(liste);
//alert(liste.length);//nbre d'enregistrements
//alert(liste[0]);// premier enregistrement du tableau


Ce qui m’ennuie ici, c'est que ça fonctionne sans bug apparent si les enfant direct ne contiennent que du texte(pas de balises imbriquées) et qu'on ne peut pas en faire une fonction récursive (parceque texContent fait fit des balises imbriquées).

Je met donc mon approche à la critique Smiley cligne

Cdt
Modifié par gcyrillus (07 Jun 2020 - 13:16)
Bonjour, et merci mille fois pour vos réponses,
Je connais la grande fréquentation de notre forum préféré, et cela me rassures presque de ne pas avoir eu de réponse très vite,
Ainsi donc je me croyais nul en Javascript,(et c'est mon point faible par rapport à PHP) mais je vois qu'il n'est pas si simple de récupérer un texte d'un DIV. (BRAVO PapyJP c'est super bien et simple je revient après test te dire quoi)

J'ai même pensé, ...ce robot d'usine qui m'envoie ce code d'automate, je pourrait très bien lui faire envoyer sur un faux textarea parce que récupérer un contenu d'un textarea est très facile, je ne comprends du reste pas ou est mon erreur pourtant je fais semble t il pareil que dans mes AJAX pour ce fichu DIV ?
Ou alors j'ai une erreur qui vous saute aux yeux et que je n'ai pas vue ???? j'ai hâte d'avoir votre avis, merci d'avance.
Bref je revient vous dire si c'est tout OK
Merci à vous, et bravo PapyJP Smiley cligne
Juste un détail au lieu de

for(var acru of monarray) document.write(acru + "<br>")


je doit renvoyer dans un DIV après modifications du genre


for(var acru of monarray) 
/*  ???? document.write(acru + "<br>") 
du genre ===> */
DIV.SONID.insertAdjacentHTML("beforeEnd",monarray[X])


c'est quoi la syntaxe ?? parce que ce que je ne comprends pas c'est que ta syntaxe

for(var acru of monarray) document.write(acru + "<br>") 

donne le bon résultat, alors que

for(var acru of monarray) resului.insertAdjacentHTML("beforeEnd","xxxxx"+acru+"uuuu") 

donc dans un DIV ID="resului" il me remets les balises ???
Modifié par Jean-Pierre-Bruneau (07 Jun 2020 - 15:47)
Pas compris ce que tu veux faire.
la syntaxe:

for(var acru of monarray) {
   ...
}

c'est pareil que

for(var i; i < monarray; i++) {
   var acru = monarray[i];
   ...
}

En général j'évite d'utiliser des traits de langage qui ne sont pas supportés par IE, de peur d'en faire usage par inadvertance dans des scripts du site osirisnet.net. Je j'ai fait une fois et ça a provoqué des vagues ... en nouvelle zélande
Modifié par PapyJP (07 Jun 2020 - 15:44)
gcyrillus a écrit :

Je met donc mon approche à la critique Smiley cligne

Qu'est-ce qui ne te va pas dans ma solution?
Dès l'instant que JPB récupère (comment?) du code de ce genre, on peut l'exploiter comme si c'était du html... et du reste ça marcherait même s'il y avait des balises dans <ACRU>
Ce serait plus propre d'avoir ce code dans une balise <xml> au lieu de <div>
Comme je n’avais pas très bien compris ce que tu voulais j’ai écrit outerHTML, remplace par innerHTML
Modifié par PapyJP (07 Jun 2020 - 16:55)
Modérateur
PapyJP a écrit :

Qu'est-ce qui ne te va pas dans ma solution?


En fait je proposais seulement mon approche à la critique (et comme toi je n'avais pas entièrement saisi ce que souhaitais Jean-Pierre-Bruneau) et j'ai trouvé
PapyJP a écrit :
En général j'évite d'utiliser des traits de langage qui ne sont pas supportés par IE, de peur d'en faire usage par inadvertance dans des scripts du site osirisnet.net. Je j'ai fait une fois et ça a provoqué des vagues ... en nouvelle zélande
cela utile.
Modifié par gcyrillus (07 Jun 2020 - 21:14)