当前位置: 首页 > 知识库问答 >
问题:

导航菜单错误"未捕获的类型错误:无法读取未定义的属性'top'"

李弘光
2023-03-14

每当我单击导航菜单上的菜单项时,我都会收到以下错误消息“UncaughtTypeError:无法读取未定义的属性'top'。我检查了浏览器控制台,发现这个函数导致了错误

$('html, body').animate({
    scrollTop: $($(this).attr('href')).offset().top
}, 700);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

这里是HTML代码

<html>
<head>
  <meta charset="utf-8">
  <title></title>
  <meta name="description" content="">
  <!-- <meta name="author" content=" studio"> -->
  <meta name="viewport" content="width=device-width">
  <link rel="stylesheet" href="css/style.css">
  <link rel="stylesheet" media="(min-width: 768px)" href="css/min768.css">
  <link href='http://fonts.googleapis.com/css?family=Roboto+Slab:400,700,300|Roboto:400,500,300italic,300|Damion' rel='stylesheet' type='text/css'>
  <script src="js/modernizr-2.6.2.js"></script>


  <!-- <link rel="icon" type="image/png" href="favicon.png" /> -->
  

  <!--Internet Explorer 8 or older doesn't support media query. This script helps ie7 and ie8 to recognize media queries-->
  <!--[if lt IE 9]>
    <script src="http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js"></script>
  <![endif]-->

    
</head>
<body>


    <!-- BEGIN HEADER -->
    <header>
      <div class="container">
        
        <!-- Begin of  .logo --> 
       <a href="index.php" id="logo"></a>
        <!-- End of .logo  -->
        
        <!-- Begin of .sign --> 
        <ul class="signin">
          <li><span>Already a member?</span><a href="" class='sign'>Signin</a></li>
        </ul>
        <!-- End of .sign  -->

        <div class="clearfix"></div>
        
        <!-- Begin of navigation --> 
        <nav>
          <span>Select page you want<b></b></span>
          <ul>
              <li><a href="index.php">Home</a></li>
            <li class='hide-on-wide'><a href="#search">Search</a></li>
            <!--<li><a href="#results">Results</a></li>-->
            <li><a href="members.php">Members</a></li>
            <li><a href="profiles.html">Testimonials</a></li>
            <li><a href="#about">About us</a></li>
            <li><a href="#contact">Contact</a></li>
          </ul>
        </nav>

我已经检查了这个网站上的其他线程解决这个问题,但我所看到的并不能解决这个问题。任何帮助都很感激

共有2个答案

湛鸿
2023-03-14

我在本地进行了尝试,结果成功了,要么目标元素的id错误,要么id不存在

是的

$('a').click(function(e){
    e.preventDefault()
    $('html, body').animate({
    scrollTop: $($(this).attr('href')).offset().top
    }, 700);
})

具有

<a href="#asd">ads</a>

和一个div

<div id="asd" style="height:200px"></div>
松越
2023-03-14

不确定你在这里想要达到什么。但是现在您正在请求一个元素的偏移量,该元素在您的正文和html中查找href属性。

我猜你想得到锚的偏移量。在这种情况下,给你的锚定一个类,并使用如下内容:

    scrollTop: $('.anchor-class').offset().top
 类似资料:
  • 我正在选择area_enninFantry的所有子div,并循环调整某些子div的文本。cardArray是一个全局常量,myId在父函数中定义。 未捕获的TypeError:无法读取未定义的属性(读取“getAttribute”) 我在这篇文章中读到,这可能是因为字段/元素的内容可能是DOM元素,我应该用$()包装它们,所以我确实这样做了——将两个变量都更改为$(元素)[a]. attr(“标题

  • 我遇到了一个有趣的问题,这使我感到困惑。我正在执行一个正确返回数据的Sharepoint RestAPI调用,当我在数据上运行for循环时,它生成html,但仍然抛出我用作标题的错误。代码如下。如果我记录每个循环,它将返回值。HTML也可以很好地工作。问题是错误仍然会出现。

  • 我使用的是最新版本的react路由器(版本^3.0.0)。 我使用ES5编写了以下路由: : 在另一个名为

  • 我试图使一个对话框弹出每当我得到一个错误从myerrorhandler我可以看到调用,但不是 这是我的错误消息。 错误类型错误:无法读取未定义的属性'openDialogTEST' 奇怪的是,如果我用按钮调用它,一切都很好。这是我的课程: usertable.component.ts auth.service.ts myerrorHandle.ts 对话框.component.ts 完整错误消息:

  • 我是一个新鲜和新的测试,我得到控制台错误在我的页面滚动时,它说像 main.js:18 未捕获的TypeError:无法读取未定义的属性“top” 我尝试了另一种解决方案,比如将选择器更改为变量,但错误没有得到解决,我想我想搜索整个页面以进行更正,但我没有确定这里是我的页面main.js 请帮我解决我的错误。。。

  • 我的代码: 错误: 未处理PromisejectionWarning:TypeError:无法读取未定义的未处理PromisejectionWarning:未处理的promise拒绝的属性“forEach”。此错误源于在没有catch块的情况下抛出异步函数的内部,或者拒绝使用未处理的promise。catch()。(拒绝id:1)(节点:7188)[DEP0018]弃用警告:未处理的promise