如何从不同的页面添加多个jQuery填充的HTML数字?

时间:2014-01-21 17:03:56

标签: javascript jquery html

我是第一次发布海报,我正在学习jQuery,所以我会尝试尽可能地制定我的文字。

在我的网站上,我有多个页面可以动态添加lis并给我一个数字。 该数字以这种方式显示:var totalOverallString = $("#overallTotal").html(total); 目前我在两个函数中有两个相似的变量。 一切都在各个页面上正常工作。 现在我想取这两个数字,添加它们,并在我的主页中显示这个新数字。

我想让它像我的其他页面一样动态工作。 我遇到的问题是从其他页面获取这些数字。

我已尝试.load.getScript来提取数字。我也试过做一个回调函数,但脚本加载并给我原始声明的变量:total = 0。这对我来说很有意义。它并没有从原始页面中添加lis。这两个变量都是全局的。

我正在尽力绕过如何做到这一点。如何从其他页面动态添加.html(total)

谢谢你的时间!

2 个答案:

答案 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。根据您需要计算的页数和列表数量,这可能特别有效。但它会工作,我认为这是唯一可以实现这一目标而不使用数据库或复杂的抓取/缓存系统的方法。