Pergunta
Eu estou trabalhando para adicionar conteúdo a uma página da web com javascript. O problema é que a CSS no IE (7) não parece aplicar-se ao conteúdo adicionado dinamicamente.
Aqui está um exemplo de documento ..
<html>
<head>
<style type="text/css">
p.foo { color: #FF4400 ; background-color: #000000 }
p.bar { color: #FF0000 ; background-color: #000000 }
</style>
<script type="text/javascript">
function add() {
var node = document.createElement("p");
node.setAttribute("class", "bar");
node.appendChild(document.createTextNode("New Content"));
document.body.appendChild(node);
};
</script>
</head>
<body onload="add()">
<p class="bar">bar</p>
<p class="foo">foo</p>
</body>
</html>
Em FF, o 'New Content' parágrafo recém-adicionado tem o estilo aplicado a ele, mas no IE, isso não acontece. Este parece ser algo bastante óbvio que deveria ser facilmente pesquisável-para, mas algumas consultas óbvias não me deu nada.
Então, qual é o truque?
Solução
Por que não usar um quadro, como jQuery , MooTools , ExtJS , Dojo , Prototype , etc., que já resolveu todos destes problemas?
Mas se você insistir em fazê-lo sozinho, tente usar:
function add() {
var node = document.createElement("p");
node.className = 'bar'; // <- use in leu of setAttribute()
node.appendChild(document.createTextNode("New Content"));
document.body.appendChild(node);
};
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow