在我的代码中的许多点,我需要知道使用了多少.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>
有任何解决此问题的建议吗?
答案 0 :(得分:4)
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);
});
答案 1 :(得分:0)
对于具有count
类
page
var count = 0;
$('.page').each(function() {
count++;
});
var vari = {
totalPageCount: count
};
工作jsFiddle
答案 2 :(得分:0)
The .size() method is deprecated as of jQuery 1.8.
改为使用length
属性:
var vari = {
*more variables*
totalPageCount : $(".page").length;
};
此外,请确保您在脚本底部或document
就绪处理程序中使用此代码。如果您在完全设置DOM之前尝试获取信息,则无法获得准确的信息。