在javascript中打印元素宽度

时间:2013-10-07 14:45:12

标签: javascript jquery html variables

我正在尝试在javascript中检索html元素宽度。屏幕上没有任何内容(纯文本有效,所以我认为语法有问题)。我究竟做错了什么?感谢

<head>
<script type="text/javascript">
    var width = $("#menu").width();
    document.write(width);
</script>
</head>

<body>
    <h1> Example </h1>

<ul id = "menu">
    <li><img src="img/Logo.jpg"/></li>
    <li><a href ="#">Home</a>
        <ul class = "sub1">
            <li><a href ="#">News</a></li>
        </ul>
    </li>
    <li><a href ="#">Machines</a>
        <ul class = "sub1">
            <li><a href ="#">Type1</a></li>
            <li><a href ="#">Type2</a></li>
            <li><a href ="#">Type3</a></li>
        </ul>
    </li>
    <li><a href ="#">Mission</a></li>
    <li><a href ="#">Contacts</a></li>
</ul>

<div id "main">
    <h2> Whatever </h2>
</div>
</body>

1 个答案:

答案 0 :(得分:0)

当元素尚不存在时,您正在计算和打印宽度。

你可以这样做:

<div id=head></div>
<script type="text/javascript">
     $(function(){ // called when the DOM is ready
          var width = $("#menu").width();
          $('#head').html(width);
     });
</script>

如您所见,我使用div代替head,因为将head的内容设置为宽度是没有意义的。如果要更改页面标题,请使用

document.title = width;

正如j08691所注意到的,你使用jQuery,但你似乎没有导入它。如果您显示的代码是真正的标题,那么您需要在head元素中添加以下内容:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>