Tengo una div
con id="div_register"
. Quiero configurarlo width
dinámicamente en JavaScript.
Estoy usando este siguiente código:
getElementById('div_register').style.width=500;
pero esta línea de código no funciona.
También intenté usar las unidades px
como las siguientes, todavía sin suerte:
getElementById('div_register').style.width='500px';
y
getElementById('div_register').style.width='500';
y
getElementById('div_register').style.width=500px;
pero ninguno de este código me funciona.
No sé qué va mal.
Estoy usando 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
fuente
fuente
onload
que ocurrió el evento?div_register
es la identificación correcta de su elemento? Quizá también nos dé algo de HTML ...style.width="500px";
debería ser correcto.onclick="show_update_profile()"
lugar deonclick="javascript:show_update_profile()"
Respuestas:
Es posible que las propiedades que está utilizando no funcionen en Firefox, Chrome y otros navegadores que no sean IE. Para que esto funcione en todos los navegadores, también sugiero agregar lo siguiente:
Para la compatibilidad cruzada, aún necesitará usar la propiedad. El orden también puede ser importante. Por ejemplo, en mi código, al configurar propiedades de estilo con JavaScript, primero configuro el atributo de estilo, luego configuro las propiedades:
Por lo tanto, el ejemplo más compatible con varios navegadores sería:
También quiero señalar que un método mucho más fácil de administrar estilos es usar un selector de clases CSS y colocar sus estilos en archivos CSS externos. Su código no solo será mucho más fácil de mantener, sino que también se hará amigo de sus diseñadores web.
Ahora, puedo agregar y eliminar fácilmente un atributo de clase, una sola propiedad, en lugar de llamar a varias propiedades. Además, cuando su diseñador web quiere cambiar la definición de lo que significa ser amplio, no necesita hurgar en su código JavaScript maravillosamente mantenido. Su código JavaScript permanece intacto, sin embargo, el tema de su aplicación se puede personalizar fácilmente.
Esta técnica sigue la regla de separar su contenido (HTML) de su comportamiento (JavaScript) y su presentación (CSS).
fuente
display: block
también se estableció.display:block;cursor:pointer;cursor:hand
todo en la misma llamada setAttribute. Si desea que su vida sea más fácil, use una biblioteca JavaScript progresiva como jQuery. La única razón por la que usé JavaScript sin procesar en mi código es porque era para incrustar código en sitios web de clientes, por lo que los entornos reales diferirían de un sitio a otro, y la forma más fácil de evitar conflictos de bibliotecas en la naturaleza es simplemente no usarlos.Estas son varias formas de aplicar estilo a un elemento. Pruebe cualquiera de los ejemplos siguientes:
fuente
Corrija los errores tipográficos en su código ("documento" está mal escrito en las líneas 3 y 4 de su función, y cambie el controlador de eventos onclick para que lea: onclick = "show_update_profile ()" y estará bien. Realmente debería seguir El consejo de jmort y simplemente configure 2 clases css entre las que cambiar en javascript; le facilitaría mucho la vida y le evitaría tener que escribir más. Los errores tipográficos que ha cometido son un ejemplo perfecto de por qué esto es mejor Acercarse.
Para los puntos brownie, también debe consultar element.addEventListener para asignar controladores de eventos a sus elementos.
fuente
Si elimina el
javascript:
prefijo y elimina las partes de los ID desconocidos como'black_fade'
de su código javascript, esto debería funcionar en FirefoxEjemplo condensado:
fuente
Firebug
complemento para Firefox? Esto te ayudará muchoEl
onclick
atributo de un botón toma una cadena de JavaScript, no un href como el que proporcionó. Simplemente elimine la parte "javascript:".fuente
¡Ten cuidado
span
!myspan.styles.width='100px'
no quiere trabajar.Cambie
span
a adiv
.fuente
span
es un elemento en línea de forma predeterminada y, por lo tanto, no obedecerá a ningún tamaño establecido en él. Cambiar su CSS adisplay: block
,display: flex
odisplay: inline-block
hará que funcione correctamente como undiv
(un elemento de bloque por defecto).styles.width
astyle.width
. :)