我是第一次发布海报,我正在学习jQuery,所以我会尝试尽可能地制定我的文字。
在我的网站上,我有多个页面可以动态添加lis并给我一个数字。
该数字以这种方式显示:var totalOverallString = $("#overallTotal").html(total);
目前我在两个函数中有两个相似的变量。
一切都在各个页面上正常工作。
现在我想取这两个数字,添加它们,并在我的主页中显示这个新数字。
我想让它像我的其他页面一样动态工作。 我遇到的问题是从其他页面获取这些数字。
我已尝试.load
和.getScript
来提取数字。我也试过做一个回调函数,但脚本加载并给我原始声明的变量:total = 0
。这对我来说很有意义。它并没有从原始页面中添加lis。这两个变量都是全局的。
我正在尽力绕过如何做到这一点。如何从其他页面动态添加.html(total)
?
谢谢你的时间!
答案 0 :(得分:0)
您可以将您的个人值存储到localStorage或sessionStorage中,其中包含HTML5
有两个新对象用于在客户端上存储数据:
localStorage - stores data with no expiration date
sessionStorage - stores data for one session
您可以使用localStorage或sessionStorage是客户端cookie来存储您的个人价值,然后您将显示您的总数到不同页面从localStorage检索值并显示它:)
如果您不想缓存总值,请设置localStorage 0的到期时间,该时间将在浏览器关闭时过期。
有关localStorage http://www.w3schools.com/html/html5_webstorage.asp
的详细信息答案 1 :(得分:0)
这是我可以想到的唯一方法,无需将所有列表项存储在数据库或类似数据库中。
包含一些列表项的示例页面1,此处称为list-1.html
:
<html>
<body>
<ul>
<li>One</li>
<li>Two</li>
</ul>
</body>
</html>
包含一些列表项的示例第2页,此处称为list-2.html
:
<html>
<body>
<ul>
<li>Three</li>
<li>Four</li>
<li>Five</li>
</ul>
</body>
</html>
您希望显示列表项计数的示例页面,在本例中为您的主页:
<html>
<body>
<!-- Element to contain the total -->
<p>Total list items: <span id="count">counting...</span></p>
<!-- Include jQuery -->
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script>
(function() {
// Update this array of URLs to the pages containing <li>s that you want to count.
var urls = ["list-one.html", "list-two.html"];
var $hidden = $("<ul />").hide();
var total = 0;
// use jQuery's selective loading functionality to load LIs from each URL, count them, and add the count to a running total
for(var i = 0; i < urls.length; i++) {
$hidden.load(urls[i] + " li", function(responseText) {
total = total + $hidden.find("li").length;
// complete - update the count element.
if(i == urls.length) {
$("#count").html(total);
}
});
}
})();
</script>
</body>
</html>
基本上我们要求每个包含列表项的页面都要计算,计算这些页面上的所有列表项并保持运行总计。
N.B。根据您需要计算的页数和列表数量,这可能不特别有效。但它会工作,我认为这是唯一可以实现这一目标而不使用数据库或复杂的抓取/缓存系统的方法。