我如何从一个HTML文件中读取数据,并使用JavaScript在另一个文件中显示它

问题描述 投票:0回答:1

我有一个HTML文件,其中包含一张包含商品及其价格的表格。我成功地使javascript遍历了表格并计算了价格的总和,但是只有当它在同一个html文件中时才可以。我想在一个单独的html文件中显示此计算,但是这样做很麻烦。

//testTable.html

<html>

<head>
<meta charset="utf-8"/>
<style>
table, th, td {
  border: 1px solid black;
}
</style>
</head>

<body>

<h2>Html Table</h2>

<table id="EstoreTable" style="width:100%">
  <tr>
    <th>Item Name</th>
    <th>Quantity</th> 
    <th>Price</th>
  </tr>
  <tr>
    <td>iPhone X</td>
    <td>10</td>
    <td>299.99</td>
  </tr>
  <tr>
    <td>Apple Watch 3</td>
    <td>12</td>
    <td>250.00</td>
  </tr>
  <tr>
    <td>MacBook Pro 13" </td>
    <td>7</td>
    <td>1199.99</td>
  </tr>
</table>  

    </body>  

</html>

//ShoppingAmount.js

    function getShoppingAmount()
{ 
    var table = document.getElementById('EstoreTable'); //data from TestTable.html
    var sum = 0;

    for (var i = 1; i < table.rows.length; i++)
        {
           sum = sum + parseFloat(table.rows[i].cells[2].innerHTML); //stores total price into sum
        }

    document.getElementById("Shopamount").innerHTML = sum; //look for id in checkout.html and display there

}

//Checkout.html
<html>
<h1>Checkout</h1>

Total Shopping Amount: <span id="Shopamount" onload="getShoppingAmount()"></span>
<script src="ShoppingAmount.js"></script> 

目标是让它在Checkout.html中打印,但我已经这样做了几个小时,没有任何结果。请帮助。

javascript html
1个回答
-2
投票

这是入门的基本设置。单击“签出”按钮后,testTable中的JS将计算总数,并将总数存储在localStorage中。然后触发链接,并将您重定向到结帐页面,从本地存储检索总和值并显示在该页面中。

testTable.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <style>
        table,
        th,
        td {
            border: 1px solid black;
        }
    </style>

</head>
<body>

    <h2>Html Table</h2>

    <table id="EstoreTable" style="width:100%">
        <tr>
            <th>Item Name</th>
            <th>Quantity</th>
            <th>Price</th>
        </tr>
        <tr>
            <td>iPhone X</td>
            <td>10</td>
            <td>299.99</td>
        </tr>
        <tr>
            <td>Apple Watch 3</td>
            <td>12</td>
            <td>250.00</td>
        </tr>
        <tr>
            <td>MacBook Pro 13" </td>
            <td>7</td>
            <td>1199.99</td>
        </tr>
    </table>
    <a href="Checkout.html" target="_blank" id="checkout">Checkout</a>
    <script src="ShoppingAmount.js"></script> 
</body>

</html>

ShoppingAmount.js

function getShoppingAmount(e) {

    var table = document.getElementById('EstoreTable'); //data from TestTable.html
    var sum = 0;

    for (var i = 1; i < table.rows.length; i++) {
        sum = sum + parseFloat(table.rows[i].cells[2].innerHTML); //stores total price into sum
    }

    // SET SUM VIA query string
    this.href += "?sum=" + sum; 

    // SET SUM VIA localStorage
    window.localStorage.setItem( "sum", sum );

}

document.querySelector("#checkout").addEventListener("click", getShoppingAmount );

Checkout.html

<html>
<h1>Checkout</h1>

Total Shopping Amount: <span id="Shopamount" ></span>
<script>
    // GET SUM VIA localStorage
    document.querySelector("#Shopamount").textContent = window.localStorage.getItem("sum");

    // GET SUM VIA query string
    let queryString = document.location.search;
    let sum = queryString.split("=")[1];
    document.querySelector("#Shopamount").textContent = sum;
</script>

[[UPDATED]包括通过@Jonathan Gray指出的通过查询字符串机制在两个页面之间传递数据的另一种方式

© www.soinside.com 2019 - 2024. All rights reserved.