11548 sujets

JavaScript, DOM et API Web HTML5

bonjour

c'est tout bete, tout est dans le titre...

je voudrais créer une ligne dans une table et qu'elle soit la 1ère ligne

c'est à dire passer de :
<table>
	<tr>
		<td>1</td>
	</tr>
	<tr>
		<td>2</td>
	</tr>
	<tr>
		<td>3</td>
	</tr>
</table>



à ça :
<table>
	<tr>
		<td>0</td>
	</tr>
	<tr>
		<td>1</td>
	</tr>
	<tr>
		<td>2</td>
	</tr>
	<tr>
		<td>3</td>
	</tr>
</table>




merci à ceux qui pourront m'aider Smiley rolleyes

PoichOU
Modifié par PoichOU (12 Dec 2005 - 11:07)
l'idéal serait même de passer à ça :

<table>
	<tbody>
	<tr>
		<td>0</td>

	</tr>
	</tbody>
	<tr>
		<td>1</td>
	</tr>
	<tr>
		<td>2</td>
	</tr>
	<tr>
		<td>3</td>
	</tr>
</table>



Smiley langue Smiley langue
PoichOU a écrit :
l'idéal serait même de passer à ça :
...


En remplaçant les <td> de la première ligne par des <th>, on y est.
Merci pour ton aide Laurent Denis, mais ça ne marche pas


voici mon code :
<table id='table' border='1'>
	<tr>
		<td>1</td><td>1</td>
	</tr>
	<tr>
		<td>2</td><td>2</td>
	</tr>
	<tr>
		<td>3</td><td>3</td>
	</tr>
</table>

<script type="text/javascript">
	var TableOrigine = document.getElementById('table');
	var tbody = document.createElement('TBODY');
	var ligne = document.createElement('TR');
	for(var r=0;r<TableOrigine.rows[0].cells.length;r++)
	{
		var td = document.createElement('TH');
		td.appendChild(document.createTextNode('0'));
		ligne.appendChild(td);
	}
	TableOrigine.appendChild(tbody);
	tbody.appendChild(ligne);
</script>


comment lui dire d'insérer au début du tableau ? Smiley rolleyes
merci de ton aide QuentinC, mais à quoi tu appliques la méthode insertRow(0) ??

j'ai tenté de l'appliquer à la table mais ça ne marche pas !
<table id='table' border='1'>
	<tr>
		<td>1</td><td>1</td>
	</tr>
	<tr>
		<td>2</td><td>2</td>
	</tr>
	<tr>
		<td>3</td><td>3</td>
	</tr>
</table>

<script type="text/javascript">
	var TableOrigine = document.getElementById('table');
	var tbody = document.createElement('TBODY');
	var ligne = document.createElement('TR');
	for(var r=0;r<TableOrigine.rows[0].cells.length;r++)
	{
		var td = document.createElement('TH');
		td.appendChild(document.createTextNode('0'));
		ligne.appendChild(td);
	}

	TableOrigine.insertRow(0);
	TableOrigine.appendChild(tbody);
	tbody.appendChild(ligne);
</script>


j'y ai cru Smiley sweatdrop Smiley sweatdrop
En admettant que l'id de ton élément table s'appele matable (tu aurais le code <table id="matable">)


var table = document.getElementById('matable');
table.tBodies[0].insertRow(0);


C'est pas sûr que ça marche.
Alors essayons :


var tr = document.createElement('tr');
table.tBodies[0].insertBefore(tr, table.tBodies[0].rows[0]);