1

我正在尝试在 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>
4

1 回答 1

0

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

你可以这样做 :

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

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

document.title = width;

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

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
于 2013-10-07T14:47:13.700 回答