Estou usando javascript puro, mas me lembro dessa dica quando estudava extjs.
quantos de vcs já passaram por problemas fazendo busca de elementos pelo id, como foi, e como superaram?
tenho utilizado a ideia de nos pra fazer busca recursiva.
Luiz, sempre usei seletores com JQuery e tbm sempre ouvi na comunidade sobre desempenho entre JS puro vs JQuery,
Só que uso sem medo, pois diversos freameworks JS usam JQuery e usam bastante o $(‘element’)
[quote=rafael_jesus]Luiz, sempre usei seletores com JQuery e tbm sempre ouvi na comunidade sobre desempenho entre JS puro vs JQuery,
Só que uso sem medo, pois diversos freameworks JS usam JQuery e usam bastante o $(‘element’)[/quote]
não estudei jquery. mas o metodo $(‘element’), dentro dele, ele faz a chamada para o metodo nativo document.getElementId?
já aconteceu de vc colocar 2 elementos com o mesmo id e em algum momento vc precisar pegar algum deles usando document.getElementId?
Sim JQuery usa a function JS document.getElementById()
Com seletores vc manipula o DOM tranquilamente,
$("um ou mais ids, tag html, classe css, percorrer nós (nesting), qq coisa que esteja no dom")
O selector $("") checka pra saber saber se é um id, uma classe css, ou h1#someId
Não vc nunca ira precisar colocar 2 ou + ids ou classes com o mesmo nome no dom
Não entendi pq aboliríamos o uso de getElementById.
Também uso JQuery e você não deve ter elementos com o mesmo ID, deve ser único. Não sei qual seria o resultado para o caso de dois elementos com o mesmo ID.
[quote=fredericomaia10]Não entendi pq aboliríamos o uso de getElementById.
Também uso JQuery e você não deve ter elementos com o mesmo ID, deve ser único. Não sei qual seria o resultado para o caso de dois elementos com o mesmo ID.[/quote]
Pq conforme sua web app cresce, as vezes não lembramos qual já id colocamos.
Eu vi um site meses atrás, só que não lembro onde que tava com um problema causado pelo mal uso de getElementById. tava tentando postar um comentário e no momento em que eu clicava no btn pra enviar o comentário, aparecia uma mensagem de alerta informando que o nome era obrigatório e o cursor pulava de um campo para outro em outro formulário que não tinha nada haver: Formulário de login do site.
Bom, fiz a análise do fonte pelo firebug e vi que existiam 2 ids com o mesmo nome. O do formulário de login e o do formulario de mensagens. Acabei conseguindo enviar o post assim mesmo. Desconsiderei o campo nome do comentário e escrevi no campo do formulário de login. Ai a mensagem foi postada com sucesso.
Nesse caso, o programador desse site, tava pegando os campos diretamente pelo id. No lugar de pegar diretamente cada campo, essa função deveria ser do form que o contêm através de algum método tal como “getFieldsValue()”. E esse método, no meu entender, não pode utilizar getElementById, deve ser pego recursivamente lendo os names e values do childNode.
Por essas e outras que venho aqui saber sobre como vcs tem utilizado o getElementById e trocar umas idéias sobre. Conhecer o critério que vcs utilizam pra prevenir problemas causados com getElementById.
Bem, acontecer de aparecerem dois id’s com o mesmo nome em toda uma app web pode ser que aconteça.
Agora na mesma página não. O desenvolvedor deve ter este cuidado. Não me recordo de ter este problema.
Costumo usar a função serialize do JQuery para obter os dados do formulário, porém ele usa o id dos elementos.
Usar frameworks Javascript MVC como AngularJS tbm resolve este problema pois eles não dependem de id para obter os valores. Visto que têm outro paradigma e possuem o model no próprio frontend.
[quote=fredericomaia10]Bem, acontecer de aparecerem dois id’s com o mesmo nome em toda uma app web pode ser que aconteça.
Agora na mesma página não. O desenvolvedor deve ter este cuidado. Não me recordo de ter este problema.
Costumo usar a função serialize do JQuery para obter os dados do formulário, porém ele usa o id dos elementos.
Usar frameworks Javascript MVC como AngularJS tbm resolve este problema pois eles não dependem de id para obter os valores. Visto que têm outro paradigma e possuem o model no próprio frontend.[/quote]
Bacana… então é isso mesmo.
Agente tem que tomar muito cuidado com o ID.
O uso de getElementById me tornava meio relaxado quanto a esse problema.
Minha estratégia vai se concentrar em somente usar ids em paineis (DIVs) principais e abolir isso de campos.
Um painel não fica indo e voltando toda hora, mas campos… nunca se sabe o que vai precisar…
valeu pelas dicas.
Posso aproveitar o topico?
Existe algum problema de utilizar,na mesma pagina,jquery e js? ou é melhor escolher um ou outro?
Pois é Luiz Augusto, talvez outros dev’s tenham outra experiência pra passar. A minha é essa.
Olá Slow17, não há problema algum em usar JS e JQuery juntos. Isso é bem comum. Acho legal apenas definirem um padrão de quando usar um ou o outro.
[quote=fredericomaia10]Pois é Luiz Augusto, talvez outros dev’s tenham outra experiência pra passar. A minha é essa.
Olá Slow17, não há problema algum em usar JS e JQuery juntos. Isso é bem comum. Acho legal apenas definirem um padrão de quando usar um ou o outro.[/quote]
é porque eu não considero jquery a resolução de todos os problemas,na parte de programação de scripts,eu prefiro o javascript,porém,para criar efeitos e usar plugins admito que jquery é
muito util
[quote=Slow17]
é porque eu não considero jquery a resolução de todos os problemas,na parte de programação de scripts,eu prefiro o javascript,porém,para criar efeitos e usar plugins admito que jquery é
muito util[/quote]
Eu já tive oportunidade de usar ExtJS. Achei interessante, mas eu tinha que me debruçar por muito tempo sobre ele pra poder contornar alguns probleminhas. Essa foi uma escolha pessoal: To redefinindo alguns padrões pra trabalhar com front-ends e estou passando usar o padrão w3c do javascript puro.
A extensão html-validator do firefox, pelo que me disseram detecta erros no código, inclusive ID’s duplicados.
Claro que deve existir diversas formas interessantes de fazer isso.
[quote=asousaj]A extensão html-validator do firefox, pelo que me disseram detecta erros no código, inclusive ID’s duplicados.
Claro que deve existir diversas formas interessantes de fazer isso.[/quote]
Rapaz… isso é muito legal!
Uso o firebug pra verificar erros e ids duplicados sei que o firebug não mostra.
Mesmo não usando mais ids, vou dar uma olhada nisso.
[quote=Luiz Augusto Prado][quote=asousaj]A extensão html-validator do firefox, pelo que me disseram detecta erros no código, inclusive ID’s duplicados.
Claro que deve existir diversas formas interessantes de fazer isso.[/quote]
Rapaz… isso é muito legal!
Uso o firebug pra verificar erros e ids duplicados sei que o firebug não mostra.
Mesmo não usando mais ids, vou dar uma olhada nisso.
[/quote]
esse post acabou me fazendo parecer contraditório.
a forma como identifiquei que existiam os 2 ids foi usando o inspecionador de elementos (foto).
algo que deve ser diferente da análise feita por esta extensão (código).
Se o elemento, com seu id, é adicionado programaticamente, ao invez das tags, esse programa ainda é capaz de dizer o erro?
se sim… é bom mesmo.
Luiz Augusto Prado,
O que aprendi sobre HTML anos atrás, é que ela é uma linguagem de diagramação - posicionamento, layout, essas coisas. Ela não dá pau.
Então teoricamente você pode fazer tudo, inclusive duplicar ids.
Mas como tudo nessa vida não é fácil, o id do seu elemento SEMPRE DEVE SER ÚNICO.
Sempre. Always. Siempre. Toujours.
Mas como não dá pau, ninguém reclama e ninguém vê. O GetElementById é a melhor forma de você alcançar qualquer elemento rapidamente. O JQuery só melhorou as coisas.
Muito obrigado pela dica do plugin do Firefox
Opa! Valeu fredericomaia10!
Aqui usamos AngularJS. Então, faz tanto tempo que não usamos esse comando que já começo esquecer pra que ele serve.