首页 > 解决方案 > 如何检查当前页面上是否存在元素

问题描述

我想检查我的元素是否存在于当前页面上。例如,我有一个功能来检查一个元素是否存在并且它。但是当我将页面离开到另一个页面时,功能不会重新加载。我收到了这个错误信息:

$(document).bind('scroll', function (ev) {
  10 |         var scrollOffset = $(document).scrollTop();
> 11 |         var containerOffset = $('.aboutTop .left').offset().top - window.innerHeight;
  12 |         if (scrollOffset > containerOffset) {
  13 |             $('.aboutTop .left').addClass('load');
  14 |         }

我检查了我的地址,window.location.href 这是我的代码:

 var $ = require('jquery/dist/jquery.min.js');
    var pathname = window.location.href;
    var p = pathname.replace(/[^a-z0-9A-Z]/gi,'');
    console.log("milad");
    console.log(p);
    if (p != 'httplocalhost3000'){
             console.log("mohammad");
    } else{
        $(document).bind('scroll', function (ev) {
            var scrollOffset = $(document).scrollTop();
            var containerOffset = $('.aboutTop .left').offset().top - window.innerHeight;
            if (scrollOffset > containerOffset) {
                $('.aboutTop .left').addClass('load');
            }
        });
        $(document).bind('scroll', function (ev) {
            var scrollOffset = $(document).scrollTop();
            var containerOffset = $('.download .buttons').offset().top - window.innerHeight;
            if (scrollOffset > containerOffset) {
                $('.download .buttons').addClass('load');
            }
        });
        $(document).bind('scroll', function (ev) {
            var scrollOffset = $(document).scrollTop();
            var containerOffset = $('.download .buttons').offset().top - window.innerHeight;
            if (scrollOffset > containerOffset) {
                $('.download .buttons').addClass('load');
            }
        });
    }

然后我想用 ref 检查元素,但我在 ref 中找不到偏移元素。

This is my function :

     var pathname = window.location.href;
        console.log(pathname);
        if (pathname != 'http://localhost:3000/#/') {
        } else if (pathname == 'http://localhost:3000/#/'){
          if(this.state.flag){
            $(document).bind('scroll', (ev) => {
              var scrollOffset = $(document).scrollTop();
              var containerOffset = this.myCountUp.spanElement.offsetTop - window.innerHeight;
              if (scrollOffset > containerOffset) {
                if (this.state.flag) {
                  startAnimation(this.myCountUp);
                  this.setState({
                    flag : false
                  })
                }
              }
            });
          }  
        }

我应该怎么办?

标签: javascriptjquery

解决方案


当检查您的文档是否存在项目时,您可以尝试此代码。

当元素长度达到 0 时,它会找到,否则找不到。

if($(document).find('.myclass').length>0){

  $('#myId').text('found Your Element of myclass');
  
  // when find your element thwn
}else {
  $('#myId').text('Not Found Your Element of myclass');
  //when not found code here
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="footer-index">
  <h3>Index</h3>
  <ul>
      <li><a href="#">About</a></li>
      <li><a href="#">Services</a></li>
      <li><a href="#">Case Studies</a></li>
      <li><a href="#">People</a></li>
      <li><a href="#">blog</a></li>
      <li><a href="#">Contact</a></li>
  </ul>
  
  <p class="myclass">some content</p> 
  
</div>

<div id="myId"></div>


推荐阅读