133

我有一个div. id="div_register"我想width在 JavaScript 中动态设置它。

我正在使用以下代码:

getElementById('div_register').style.width=500;

但这行代码不起作用。

我也尝试使用以下单位px,但仍然没有运气:

getElementById('div_register').style.width='500px';

getElementById('div_register').style.width='500';

getElementById('div_register').style.width=500px;

但这些代码都不适合我。

我不知道出了什么问题。

我正在使用 Mozilla Firefox。

编辑

<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>
4

7 回答 7

265

您使用的属性可能无法在 Firefox、Chrome 和其他非 IE 浏览器中运行。为了使其在所有浏览器中都能正常工作,我还建议添加以下内容:

document.getElementById('div_register').setAttribute("style","width:500px");

为了交叉兼容性,您仍然需要使用该属性。顺序也可能很重要。例如,在我的代码中,当使用 JavaScript 设置样式属性时,我先设置样式属性,然后设置属性:

document.getElementById("mydiv").setAttribute("style","display:block;cursor:pointer;cursor:hand;");
document.getElementById("mydiv").style.display = "block";
document.getElementById("mydiv").style.cursor = "hand";

因此,最适合您的跨浏览器兼容示例是:

document.getElementById('div_register').setAttribute("style","display:block;width:500px");
document.getElementById('div_register').style.width='500px';

我还想指出,管理样式的一种更简单的方法是使用 CSS 类选择器并将您的样式放在外部 CSS 文件中。不仅您的代码更易于维护,而且您实际上会与您的 Web 设计师交朋友!

document.getElementById("div_register").setAttribute("class","wide");

.wide {
    display:block;
    width:500px;
}

.hide {
    display:none;
}

.narrow {
    display:block;
    width:100px;
}

现在,我可以轻松地添加和删除一个类属性,一个属性,而不是调用多个属性。此外,当您的 Web 设计师想要更改宽的定义时,他或她不需要在您维护精美的 JavaScript 代码中四处寻找。您的 JavaScript 代码保持不变,但可以轻松自定义应用程序的主题。

该技术遵循将内容 (HTML) 与行为 (JavaScript) 和演示文稿 (CSS) 分开的规则。

于 2012-04-12T06:05:00.120 回答
19

这些是将样式应用于元素的几种方法。尝试以下任一示例:

1. document.getElementById('div_register').className = 'wide';
  /* CSS */ .wide{width:500px;}
2. document.getElementById('div_register').setAttribute('class','wide');
3. document.getElementById('div_register').style.width = '500px';
于 2012-04-12T08:17:26.060 回答
2

修复代码document中的拼写错误(在函数的第 3 行和第 4 行拼写错误,并将 onclick 事件处理程序更改为读取:onclick="show_update_profile()"你会没事的。@jmort 的建议很好 - 只需设置 2 个您切换的 css 类在 javascript 之间 - 它会让事情变得更容易。

您还可以查看element.addEventListener以将事件处理程序分配给您的元素。

于 2012-04-12T07:01:08.277 回答
0

如果您删除javascript:前缀并从您的 javascript 代码中删除未知 id 的部分'black_fade',这应该在 firefox 中工作

精简示例:

<html>
    <head>
        <script type="text/javascript">
            function show_update_profile() {
               document.getElementById('div_register').style.height= "500px";
               document.getElementById('div_register').style.width= "500px";
               document.getElementById('div_register').style.display='block';
               return true;
           }
        </script>
        <style>
           /* just to show dimensions of div */
           #div_register
           {
                background-color: #cfc;
           }
        </style>
    </head>
    <body>
        <div id="main">
            <input type="button" onclick="show_update_profile();" value="show"/>
        </div>
        <div id="div_register">
            <table>
                <tr>
                   <td>
                     welcome 
                   </td>
                </tr>
            </table>
        </div>
    </body>
</html>
于 2012-04-12T06:50:34.980 回答
0

小心span

myspan.styles.width='100px'不想工作。

将 更改spandiv.

于 2015-09-11T14:49:56.807 回答
-1

按钮的onclick属性采用 JavaScript 字符串,而不是您提供的 href。只需删除“javascript:”部分。

于 2012-04-12T06:28:02.357 回答
-2

你必须使用document。Document 接口代表浏览器中加载的任何网页,并作为网页内容的入口点,

了解更多

document.getElementById('div_register').style.width='500px';
于 2021-04-11T22:33:43.393 回答