Javascript 如何检查当前页面上是否存在元素
我想检查当前页面上是否存在我的元素。 例如,我有一个函数来检查一个元素是否存在,以及它是否存在。 但是当我离开页面到另一个页面时,函数不是重载。 我收到了这个错误信息:Javascript 如何检查当前页面上是否存在元素,javascript,jquery,Javascript,Jquery,我想检查当前页面上是否存在我的元素。 例如,我有一个函数来检查一个元素是否存在,以及它是否存在。 但是当我离开页面到另一个页面时,函数不是重载。 我收到了这个错误信息: $(document).bind('scroll', function (ev) { 10 | var scrollOffset = $(document).scrollTop(); > 11 | var containerOffset = $('.aboutTop .left').of
$(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
})
}
}
});
}
}
我该怎么办?据我所知,您可以先检查类/元素的长度,因此如果length为true,则只执行偏移代码块。我的意思是说:
var elmLength = $('.aboutTop .left').length;
if (elmLength){
var containerOffset = $('.aboutTop .left').offset().top - window.innerHeight;
if (scrollOffset > containerOffset) {
$('.aboutTop .left').addClass('load');
}
}
else{}
希望这将对您有所帮助。当检查您的文档是否存在项目时,您可以尝试此代码。 当元素长度达到0时,它会查找到其他未找到的元素。
if($(文档).find('.myclass').length>0){
$('#myId').text('found Your Element of myclass');
//什么时候找到你的元素
}否则{
$('#myId').text('未找到myclass的元素');
//当在这里找不到代码时
}
指数
一些内容
$('.aboutTop.left')
很可能不会在新页面上为您提供结果,因此尝试执行.offset().top
将不起作用。这个问题在这里已经有了答案:应该缓存$('.aboutTop.left')
而不是在dom中搜索3次相同的内容否,您不能缓存$('.aboutTop.left'))
,您可以将其存储在全局变量中。嗯?这毫无意义。在var elemLength
之前执行此操作,然后在if()中使用存储的对象引用