ArielNessi Postado Julho 21, 2011 Denunciar Share Postado Julho 21, 2011 Prezados,Gostaria de tirar uma duvida,quando elementos são postos com o mesmo nome, por ex.:<label name = "teste"></labe> <label name ="teste"></label> uma vez invocado por javascript com document.getElementsByName("teste") ele retorna uma array de elementos no caso acima para acessar alguma propriedade especifica eu teria q chamar por document.getElementsByName("teste")[0] minha duvida é que propriedade eu chamo para retornar este numero por exemplo <label onclick = "teste(this)" name = "teste"></label> <label onlock = "teste(this)" name = "teste"></label> function teste(variavel) alert(variavel.*algumacoisa*) }de forma que clicando no priemiro label eu receba o 0 e no segundo label um 1 ( a posição do elemento no array)Grato desde já Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Willian Gustavo Veiga Postado Julho 22, 2011 Denunciar Share Postado Julho 22, 2011 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> </head> <body> <form method="post" action=""> <input name="a" type="text" /> <input name="b" type="text" /> <input name="c" type="text" /> </form> <script> var elements = document.getElementsByTagName('input'); console.log(elements[0].name); // imprime a console.log(elements[1].name); // imprime b console.log(elements[2].name); // imprime c </script> </body> </html>Seria isso? Não sei se entendi bem.Um abraço. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ArielNessi Postado Julho 22, 2011 Autor Denunciar Share Postado Julho 22, 2011 Willian,Obrigado a atenção,acontece que na pratica estou trabalhando com uma tela dinamica, então meu js não pode conter numeros estaticos para as posições, mas eu sempre passo o argumento this na função, o que pelo menos até onde eu entendo carrega para a função exatamente o objeto que gerou o evento de chamada. então suponho que exista algum comando/maneira de apartir de um this chegar a posição do elemento não tenho muita experiencia com java e não achei nada pesquisando por aipartindo do seu codigo eu quero o mesmo resultado mas da seguinte maneira<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> </head> <body> <form method="post" action=""> <input name="a" type="text" onclick = "funcao(this)" /> <input name="b" type="text"onclick = "funcao(this)" /> <input name="c" type="text" onclick = "funcao(this)"/> </form> <script> function funcao(elements) // console.log(elements[0].name); // imprime a // console.log(elements[1].name); // imprime b // console.log(elements[2].name); // imprime c console.log(elements.?posiçãoNoArray?) //se chamado por a imprime 0 console.log(elements.?posiçãoNoArray?) //se chamado por b imprime 1 console.log(elements.?posiçãoNoArray?) //se chamado por c imprime 2 </script> </body> </html>Espero que tenha ficado mais claro agora, grato desde já Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Tenko Postado Julho 22, 2011 Denunciar Share Postado Julho 22, 2011 Já tentou usar com id?<form method="post" action="" id="forms"> <input name="a" id='0' type="text" onclick = "funcao(this);"/> <input name="a" id='1' type="text" onclick = "funcao(this);"/> <input name="a" id='2' type="text" onclick = "funcao(this);"/> </form> <script> function funcao(elements){ alert( elements.id ) } </script> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ArielNessi Postado Julho 22, 2011 Autor Denunciar Share Postado Julho 22, 2011 Vou tentar explicar melhor a situaçãotenho uma pagina sendo gerada por registros de um banco de dadosa pagina tem como finalidade controlar agendamentos bancarios,os agendamentos são agrupados pelo dia em que foram cadastradose cada agrupamento possui um id portanto todos elementos checkbox agrupados no dia22/07/2011 possuem o mesmo id. dessa forma escrevi uma function em js para poder marcar todos checkbox de um agrupamento, somar os valores e mostrar um total dos selecionados. tudo atraves de um loop para todos elementos com o id referente ao agrupamento.digamos<div> <label>Agrupamento 22/07/2011</label> <input type = "checkbox" onclick = "checkall('1')"> <div> <label name = "x1"> R$ 2000,00</label> <checkbox name = "a1" value = "10"> <br> <label name = "x1"> R$ 3000,00</label> <checkbox name = "a1" value = "12"> <label name = "x1"> R$ 4000,00</label> <checkbox name = "a1" value = "15"> </div> </div> <div> <label>Agrupamento 23/07/2011</label> <input type = "checkbox" onclick = "checkall('2')" <div> <label name = "x2"> R$ 1,00</label> <checkbox name = "a2" value = "11"> <br> <label name = "x2"> R$ 2,00</label> <checkbox name = "a2" value = "14"> <label name = "x2"> R$ 3,00</label> <checkbox name = "a2" value = "19"> </div> </div> então na função eu chamo por x2 por exemplo e faço um loop por todos elementos function checkall(argumento) var exemplo var soma exemplo = "x" + argumento for(var i = 0; i < document.getElementsByName(exemplo).length;i++) { exemplo = document.getElementsByName(exemplo)[i].childNodes[0].nodeValue exemplo = exemplo.replace("R$", "") exemplo = exemplo.replace(".",",") exemplo = exemplo.replace(",",".") soma = parseFloat(exemplo) + soma }isso é o que eu JÁ fiz, mas agora gostaria de fazer a soma funcionar quando um checkbox é ativado individualmente, suponho que exista um comando que retorne a posição do de um elemento a partir do parametro this, desculpem acho que não estou conseguindo ser claro Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
ArielNessi
Prezados,
Gostaria de tirar uma duvida,
quando elementos são postos com o mesmo nome, por ex.:
uma vez invocado por javascript com ele retorna uma array de elementos no caso acima para acessar alguma propriedade especifica eu teria q chamar por minha duvida é que propriedade eu chamo para retornar este numero por exemplode forma que clicando no priemiro label eu receba o 0 e no segundo label um 1 ( a posição do elemento no array)
Grato desde já
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.