Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Victor Ferreira

[Resolvido] Apenas o primeiro link é capturado por getElementsByT

Recommended Posts

No firefox, amigos, estou tentando capturar todos os links da página, e depois mudar o href deles. Durante o teste, iniciei um FOR e pedi para que, para cada um dos links capturados, ele printasse, ou o objeto inteiro, ou o href dele. O código vem abaixo:

 

<html>
	<head>
		<title>Página 1</title>
		<script type="text/javascript">
			
			function mudaHREFLinks(){
				//esta função deve capturar todos os links da página, verificar se ele possui um docid e se ele não possuir um docid pai. Se ambos forem verdadeiro, ele joga par2 no href do link.
				var linksPagina = document.getElementsByTagName('A'); //pega todos os links
				var qtdLinksPagina = linksPagina.length; //quantos links são
				
				//document.write(qtdLinksPagina);
				
				for(var i=0; i<qtdLinksPagina; i++){
					document.write(linksPagina[i]);
					//ou document.write(linksPagina[i].href);
				}
			}
			
		</script>
	</head>
	<body onload="mudaHREFLinks();">
		<a href="pagina11.html?par1=valor1">Link pagina 1.1</a>
		<a href="pagina12.html?par1=valor1">Link pagina 1.2</a>
		<a href="pagina13.html?par1=valor1">Link pagina 1.3</a>
	</body>
</html>

E somente o primeiro link retorna. Os outros ficam como undefined.

 

Saberiam me dizer o por que? Estou muito precisando desta resposta!

 

@EDIT

 

o que é mais bizarro, é que se eu for manualmente dentro do For e mudar o I document.write(linksPagina[1]);

para 1, por exemplo, ou 2, ele vai mostrar 1 (e só uma vez ¬¬) o objeto ou o link dele. Ele não está navegando entre os objetos deste array. Ele só msotra o primeiro. Que droga é essa?

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

não faz sentido um document.write dentro do <head> do documento..

 

<html>
<head>
<title>Página 1</title>
<script type="text/javascript">
function mudaHREFLinks(){
	var linksPagina = document.getElementsByTagName('a');
	var qtdLinksPagina = linksPagina.length;
	
	
	var links = '';
	for(var i=0; i<qtdLinksPagina; i++){
		links += '<br /> <strong>label</strong>: '+linksPagina[i].innerHTML+' <strong>href</strong>: '+linksPagina[i].href;
	}
	return links;
}
window.onload = function()
{
	document.getElementById('resultado').innerHTML += mudaHREFLinks();
}
</script>
</head>
<body>
	<a href="pagina11.html?par1=valor1">Link pagina 1.1</a>
	<a href="pagina12.html?par1=valor2">Link pagina 1.2</a>
	<a href="pagina13.html?par1=valor3">Link pagina 1.3</a>
	
	<div id="resultado">Links aqui: <br /></div>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

estranho, porqeu se eu printar I document.write(i)

 

ele vai me mostrar uma contagem de 0 até qtdLiksPagina-1.

Compartilhar este post


Link para o post
Compartilhar em outros sites

? estranho oque ?

 

<html>
<head>
<title>Página 1</title>
<script type="text/javascript">
function mudaHREFLinks(){
	var linksPagina = document.getElementsByTagName('a');
	var qtdLinksPagina = linksPagina.length;
	
	
	var links = '';
	for(var i=0; i<qtdLinksPagina; i++){
		links += '<br /> <strong>label</strong>: '+linksPagina[i].innerHTML+' <strong>href</strong>: '+linksPagina[i].href;
	}
	return links;
}
</script>
</head>
<body>
	<a href="pagina11.html?par1=valor1">Link pagina 1.1</a>
	<a href="pagina12.html?par1=valor2">Link pagina 1.2</a>
	<a href="pagina13.html?par1=valor3">Link pagina 1.3</a>
	
	<div id="resultado">Links aqui: <br />
	
	<script type="text/javascript">document.write( mudaHREFLinks() );</script></div>
</body>
</html>
enfim, não faça document.write no <head> do documento..

veja que o <head> não é visivel na view port dos browsers, apenas a área util do <body> é.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tudo bem, deu certo, a questão é que eu nunca tive problemas claros com isso. Dessa vez realmente não funcionou. Alias, funcionou parcialmente. Eu ganha 1 url e 2 undefineds. Do jeito que você fez, eu consegui visualizar as hrefs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.