Eu tenho um div
com id="div_register"
. Quero defini-lo width
dinamicamente em JavaScript.
Estou usando o seguinte código:
getElementById('div_register').style.width=500;
mas esta linha de código não está funcionando.
Eu também tentei usar as unidades px
como as seguintes, ainda sem sorte:
getElementById('div_register').style.width='500px';
e
getElementById('div_register').style.width='500';
e
getElementById('div_register').style.width=500px;
mas nenhum desse código está funcionando para mim.
Eu não sei o que está errado.
Estou usando o Mozilla Firefox.
EDITAR
<html>
<head>
<title>Untitled</title>
<script>
function show_update_profile() {
document.getElementById('black_fade').style.display='block';
//document.getElementById.('div_register').style.left=((window.innerWidth)-500)/20;
document.getElementById('div_register').style.height= "500px";
document.getElementById('div_register').style.width= '500px';
//alert('kutta');
document.getElementById('div_register').style.display='block';
document.getElementById('register_flag').value= 1;
document.getElementById('physical_flag').value= 0;
document.getElementById('cultural_flag').value= 0;
document.getElementById('professional_flag').value= 0;
document.getElementById('lifestyle_flag').value= 0;
document.getElementById('hobby_flag').value= 0;
//alert(window.innerWidth);
}
</script>
<style>
.white_content {
display:none;
}
</style>
</head>
<body>
<div id="main">
<input type="button" onclick="javascript:show_update_profile();" id="show" name="show" value="show"/>
</div>
<div id="div_register">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td>
welcome
</td>
</tr>
</table>
</div>
</body>
</html>
javascript
Saswat
fonte
fonte
onload
ocorrência do evento?div_register
é o id correto do seu elemento? Talvez nos dê algum html também ...style.width="500px";
deve estar certo.onclick="show_update_profile()"
vez deonclick="javascript:show_update_profile()"
Respostas:
As propriedades que você está usando podem não funcionar no Firefox, Chrome e outros navegadores que não sejam IE. Para fazer isso funcionar em todos os navegadores, também sugiro adicionar o seguinte:
Para compatibilidade cruzada, você ainda precisará usar a propriedade. A ordem também pode ser importante. Por exemplo, em meu código, ao definir propriedades de estilo com JavaScript, defino primeiro o atributo de estilo e, em seguida, defino as propriedades:
Assim, o exemplo mais compatível com vários navegadores para você seria:
Também quero salientar que um método muito mais fácil de gerenciar estilos é usar um seletor de classe CSS e colocar seus estilos em arquivos CSS externos. Não apenas seu código será muito mais fácil de manter, mas você realmente fará amizade com seus designers da Web!
Agora, posso simplesmente adicionar e remover um atributo de classe, uma única propriedade, em vez de chamar várias propriedades. Além disso, quando o Web designer deseja alterar a definição do que significa ser amplo, ele não precisa ficar mexendo em seu código JavaScript bem mantido. Seu código JavaScript permanece intocado, mas o tema de seu aplicativo pode ser facilmente personalizado.
Essa técnica segue a regra de separar seu conteúdo (HTML) de seu comportamento (JavaScript) e sua apresentação (CSS).
fonte
display: block
também foi definido.display:block;cursor:pointer;cursor:hand
todos na mesma chamada setAttribute. Se você deseja que sua vida seja mais fácil, use uma biblioteca JavaScript progressiva como o jQuery. O único motivo pelo qual usei JavaScript bruto em meu código é porque ele era para incorporar código em sites de clientes, de modo que os ambientes reais seriam diferentes de site para site e a maneira mais fácil de evitar conflitos de biblioteca é simplesmente não usá-los.Existem várias maneiras de aplicar estilo a um elemento. Experimente qualquer um dos exemplos abaixo:
fonte
Corrija os erros de digitação em seu código ("documento" está escrito incorretamente nas linhas 3 e 4 de sua função e altere o manipulador de eventos onclick para ler: onclick = "show_update_profile ()" e então você ficará bem. Você realmente deve seguir conselho de jmort e simplesmente configurar 2 classes css entre as quais você pode alternar em javascript - tornaria sua vida muito mais fácil e evitaria toda a digitação extra. Os erros de digitação que você cometeu são um exemplo perfeito de por que isso é melhor abordagem.
Para pontos de brownie, você também deve verificar element.addEventListener para atribuir manipuladores de eventos aos seus elementos.
fonte
Se você remover o
javascript:
prefixo e remover as partes dos ids desconhecidos, como'black_fade'
do seu código javascript, isso deve funcionar no firefoxExemplo condensado:
fonte
Firebug
plugin para Firefox? Isso vai te ajudar muitoO
onclick
atributo de um botão leva uma string de JavaScript, não um href como você forneceu. Basta remover a parte "javascript:".fonte
Cuidado
span
!myspan.styles.width='100px'
não quer trabalhar.Altere o
span
para adiv
.fonte
span
é um elemento embutido por padrão e, portanto, não obedece a nenhum tamanho definido nele. Alterar seu CSS paradisplay: block
,display: flex
oudisplay: inline-block
fará com que ele funcione corretamente como umdiv
(um elemento de bloco por padrão).styles.width
parastyle.width
. :)