在我的代码中的许多地方,我需要知道使用了多少个 .page
类。
要知道这一点,我使用 $(".page").size()
我想将这些信息保存到一个变量中。
所以我写了这个:
var vari = {
*more variables*
totalPageCount : $(".page").size()
};
问题是 vari.totalPageCount
总是返回 0。
使用 console.log()
我得到这个:
console.log($(".page").size()); // Return 8
console.log(vari.totalPageCount); // Return 0
编辑: 这是我如何使用它的示例。
JS:
var vari = {
currentPage : 0,
pageAnimations : 0,
animationList : ".fade-in, .fade-out",
totalPageCount : $(".page").size(),
};
var footer = {
html : function(){
var html;
var date = this.date();
for(var i=0; i<vari.totalPageCount; i++){
html = '<span class="pageNumber" id="pageNumber">Folie:'+i+' • '+vari.custom["companyName"]+' • '+date+'</span>';
$("#normalPage"+i).append(html);
}
return;
}
};
HTML:
<body class="presWrapper">
<div class="pageWrapper">
<div class="page startPage" id="startPage">
<h2 class="mainTitle">Lorem</h2>
<h4 class="subTitle">Ipsum</h4>
</div>
</div>
<div class="pageWrapper">
<div class="page normalPage" id="normalPage1">
<div class="content">
<p class="fade-in">HELLO WORLD</p>
</div>
</div>
</div>
<div class="pageWrapper">
<div class="page endPage" id="endPage">
<div class="content">
<p class="fade-out">HELLO SATURN</p>
<p class="fade-out">HELLO WORLD</p>
<p class="fade-in">HELLO WORLD</p>
<p>pTag</p>
</div>
</div>
</div>
</body>
有什么解决这个问题的建议吗?
最佳答案
vari.totalPageCount
仅在声明时进行评估。- 因此,它在第一次运行时只有
$(".page").size()
的值。
除非您正在等待文档准备就绪,否则 .page
的子项尚未添加并且它的长度为 0
。
当您稍后调用控制台并再次执行选择器时 - 您会在控制台消息中获得真实计数 - 但存储的值已在 vari 中计算为 0。
length() 和 size() 是 jquery 中的等效函数,但 size 已被弃用,因此 length 是要调用的适当函数。但在任何一种情况下 - 当 vari 对象被构造为具有有意义的值时,您很可能只是过早地评估长度。
以下是否为您提供了错误的属性值:
$(document).ready(function () {
var vari = {totalPageCount: $('.page').length};
console.log(vari.totalPageCount);
});
关于javascript - jQuery .size() 函数不适用于变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37885229/