Tudo bem, eu já me envolvi com JavaScript antes, mas a coisa mais útil que escrevi é um alternador de estilos CSS. Então, sou um pouco novo nisso. Digamos que eu tenha código HTML como este:
<div id="foo">
<div class="bar">
Hello world!
</div>
</div>
Como eu mudaria "Olá, mundo!" para "adeus mundo!" ? Eu sei como document.getElementByClass e document.getElementById funcionam, mas gostaria de ser mais específico. Desculpe se isso foi perguntado antes.
fonte
document.getElementsByClassName
funcionaria bem..innerHtml
para.textContent
para o benefício de cópia de segurança / colar codificadores.Você pode fazer assim:
ou, se você quiser fazer isso com menos verificação de erro e mais brevidade, isso pode ser feito em uma linha como esta:
Na explicação:
id="foo"
.class="bar"
.innerHTML
item para alterar seu conteúdo.Advertências: alguns navegadores mais antigos não suportam
getElementsByClassName
(por exemplo, versões mais antigas do IE). Essa função pode ser ajustada no lugar, se estiver faltando.É aqui que eu recomendo o uso de uma biblioteca que tenha suporte ao seletor CSS3 embutido, em vez de se preocupar com a compatibilidade do navegador (deixe outra pessoa fazer todo o trabalho). Se você quiser apenas uma biblioteca para fazer isso, o Sizzle funcionará muito bem. No Sizzle, isso seria feito assim:
O jQuery possui a biblioteca Sizzle integrada e no jQuery, seria:
fonte
Se isso funcionar no IE 7 ou inferior, lembre-se de que getElementsByClassName não existe em todos os navegadores. Por isso, você pode criar seu próprio getElementsByClassName ou pode tentar isso.
fonte
getElementsByClassName
também não funciona no IE8, mas você pode usá-loquerySelectorAll
em seu lugar (praticamente de qualquer maneira).qSA
um shim para que você ainda possa usar código nativo no IE8. Embora dê uma olhada mais de perto na sua solução, você precisa corrigir algumas coisas.var i = 0, var child = fooDiv.childNodes[i]
é inválido.i <= fooDiv.childNodes
realmente não faz sentido.childNode.className.test("bar")
Não háchildNode
variável e uma string não possui umtest()
método.Função recursiva:
fonte
A maneira mais fácil de fazer isso é:
ou melhor legível:
fonte
Você não deve usar document.getElementByID porque seu trabalho apenas para o lado do cliente controla quais IDs são corrigidos. Você deve usar o jquery como no exemplo abaixo.
usa isto :
se você quiser remover, editar qualquer operação, basta adicionar "." por trás e fazer as operações
fonte