Problème sur le résultat du nombre d'enfant d'un ElementHTLM

Fermé
gprog Etu - 26 juil. 2014 à 17:43
e666 Messages postés 458 Date d'inscription jeudi 23 août 2012 Statut Membre Dernière intervention 2 août 2014 - 26 juil. 2014 à 18:22
Bonjour,

je suis en DUT et je fais un stage en informatique (je suis débutant quand même).

L'objectif étant de faire une suite bureautique (pas très complexe), juste une sorte de grille ("telle que excel) où l'on peut éditer..

j'avance pas par pas et je suis bloqué sur un point.

mon principe :

faire un tableau html et dans les cellules du tableau, je met un type input (text ou number selon besoin).

1) j'arrive pas à récupérer la valeur de du type input

2) Lorsque je compte le nombre d'enfant dans la cellule, le résultat est 3 et pas 1.

Je vous remercie de votre aide et du temps !




<script>
function voirContenu()
{
var x = document.getElementById("cell_0");
alert(x.childNodes.length); //firstChild.nodeValue;
}
</script>

<table id="monTableau_Edit" border="1">
<caption>Tabelau Edit</caption>
<tbody id="mes_cellules">
<tr id="ligne_0"><!-- -->
<td id="cell_0"> <input id="essaie0" type="text" style="border:none; name="essaie0" value="Imagine" /> </td>
</tr>
</tbody>
</table>




2 réponses

J'ai finalement trouvé ce qui n'allait pas.
Pour ceux qui auront ce problème :

il faut juste enlever les espaces dans la balise td qui encadre le type input car ils comptent en noeud de texte.
Donc ne pas mettre d'espace mais juste le type input.
0
e666 Messages postés 458 Date d'inscription jeudi 23 août 2012 Statut Membre Dernière intervention 2 août 2014 173
26 juil. 2014 à 18:22
Salut,

C'est parce que tu as mis des espaces avant et après ton input. Le javascript compte ça comme du texte et donc cela fait 3 enfants avec ton input.
Pourquoi n'accèdes-tu pas directement à ton input ?
Tu lui as mis un identifiant en plus.
Il te suffit ensuite de faire inputName.value pour avoir sa valeur.
Donc ça donne ça pour ta fonction :

function voirContenu()
{
var x = document.getElementById("essaie0");
console.log(x.value);
}
Les valeurs s'afficheront dans la console javascript pour le debug, c'est plus pratique que les alert les console.log. Pour y accéder: ctrl+shift+i dans chrome, opera, firefox. F12 sous IE.
Aussi je te conseille de séparer ton javascript dans un fichier différent. De même, pour les styles CSS. Sinon ça va un peu être le bazar et difficile de s'y retrouver, de maintenir. Le HTML sert pour la structure de la page. Le Javascript pour les interractions. Et le CSS pour la mise en page, l'affichage.

Bonne chance !
0