Jump to content
XsTeAl

numero de colunas e linhas

Recommended Posts

XsTeAl

Boas, tou a inicial em JavaScript e queria saber como posso fazer ao abrir uma pagina ter 2 prompt, uma a perguntar o numero de linhas e outra o numero de colunas, e no final aparecer como eu queria.. ja tenho este codigo mas aparece 5 linhas e 5 colunas, o erro sei onde esta mas nao tou a ver como o contornar

try{
	var x=prompt("Quantas linhas?", 5);
	var y=prompt("Quantas colunas?", 5);

	document.write("<table border=\"1\">");

	for(x=1;x<=5;x++){
		document.write("<tr>");
			for(y=1;y<=5;y++){
				document.write("<td> </td>");
				}
					document.write("</tr>");
				}
				document.write("</table>");
				}
				catch(err){
					alert(err);
					}

Share this post


Link to post
Share on other sites
brunoais

Bom... é melhor começar por outro lado.

O document.write (e o writeln) devem ser evitados ao máximo. É algo que já se chegou à conclusão que afinal não é tão boa ideia.

É melhor usar o sistema de nodes.

Para criar um node: https://developer.mozilla.org/en/DOM/document.createElement

Para meter um node num outro node (por exemplo, meter um <td> dentro de um <tr> ou meter um <tr> dentro de um <table>): https://developer.mozilla.org/En/DOM/Node.appendChild

Para escrever dentro de um node podes usar a lógica:

HTMLnode.firstChild.data. Por exemplo:

tdNode.firstChild.data = ' ';

Outra coisa, com essa identação é muito complicado ler esse código. Vê se consegues corrigir isso.

Já agora:

Qual é o erro que ele indica?


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
XsTeAl

Bom... é melhor começar por outro lado.

O document.write (e o writeln) devem ser evitados ao máximo. É algo que já se chegou à conclusão que afinal não é tão boa ideia.

É melhor usar o sistema de nodes.

Para criar um node: https://developer.mozilla.org/en/DOM/document.createElement

Para meter um node num outro node (por exemplo, meter um <td> dentro de um <tr> ou meter um <tr> dentro de um <table>): https://developer.mozilla.org/En/DOM/Node.appendChild

Para escrever dentro de um node podes usar a lógica:

HTMLnode.firstChild.data. Por exemplo:

tdNode.firstChild.data = ' ';

Outra coisa, com essa identação é muito complicado ler esse código. Vê se consegues corrigir isso.

Já agora:

Qual é o erro que ele indica?

como disse ainda estou na iniciacao, vou ler melhor sobre o que escreveste, simplesmente nao da erro, eu a testar meto por exemplo 2 linhas e 3 colunas e aparece sempre 5 linhas e 5 colunas, seja qual for o valor que meta, aparece sempre 5/5

Share this post


Link to post
Share on other sites
useware

O problema está em usares as mesmas variáveis no ciclo for.

Experimenta:

try{
	var maxX=prompt("Quantas linhas?", 5); <-- corrigido
	var maxY=prompt("Quantas colunas?", 5); <-- corrigido

	document.write("<table border=\"1\">");

	for(x=1;x<=maxX;x++){ <-- corrigido
		document.write("<tr>");
			for(y=1;y<=maxY;y++){ \\ <-- corrigido
				document.write("<td> </td>");
				}
					document.write("</tr>");
				}
				document.write("</table>");
				}
				catch(err){
					alert(err);
					}

Share this post


Link to post
Share on other sites
brunoais

Esse código ainda tem erros:

try{
	var maxX=prompt("Quantas linhas?", 5); <-- corrigido
	var maxY=prompt("Quantas colunas?", 5); <-- corrigido

	document.write("<table border=\"1\">");

	for(var x=1;x<=maxX;x++){ //warning, x is not defined
		document.write("<tr>");
			for(var y=1;y<=maxY;y++){ // warning, y is not defined
				document.write("<td> </td>");
				}
					document.write("</tr>");
				}
				document.write("</table>");
				}
				catch(err){
					alert(err);
					}

E tenta sustituir aqueles document.write por algo melhor. O javascript é uma linguagem direcionada a objetos e de cada vez mais está a ser dependente disso tratando cada tag como um objeto a que se podem aplicar muitas ações. Na realidade acho que só mantiveram o método write (e o writeln) por motivos de retro-compatibilidade. O mesmo digo em relação a variáveis não definidas. É uma má prática que o javascript permitia (e que agora já lança warning). Em códigos só um pouco mais complexos já são um problema enorme para saber se, num bloco, está-se a declarar uma variável nova ou a usar uma variável do exterior do bloco. Usando o var essa dúvida desaparece.


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.