使用javascript如何克隆表中的所有行以存储在会话中并将其追加

时间:2015-12-18 22:39:53

标签: javascript php html session

我买运费。当用户添加到购物车但尚未提交而不是用户点击其他页面时,我想在会话中存储商品。这是我的代码

    var tab=document.getElementById("shippingCartForm");
    var tbody = tab.getElementsByTagName( "tbody" )[ 0 ];
    var row1 = tbody.getElementsByTagName( "tr" )[ 0 ];
    var clnNode=row1.cloneNode(true);
    sessionStorage.setItem("name", clnNode); 

这是我的HTML

    <table id="shippingCartForm"  border="1">
                <thead>
                   <th>No</th>
                   <th>Name</th>
                   <th>Price</th>
                   <th>Quantity</th>
                   <th>Remove From Cart</th>
             </thead>
             <tbody>
             </tbody>
         </table>

因此,当用户点击其他页面或刷新页面时。我需要查看会话,如果有,请在用户返回页面时显示talbe shippingCartForm

这是我的剧本

    window.onload = function() {
        if (sessionStorage.getItem("name")!= null){
             var tableRef = document.getElementById('shippingCartForm');
             var newRow = tableRef.getElementsByTagName( "tbody" )[ 0 ];
             tableRef.appendChild(sessionStorage.getItem("name"));
        }
}

但是我在控制台上收到了消息错误

[object HTMLTableRowElement] script.js (line 2)
TypeError: Argument 1 of Node.appendChild is not an object.
tableRef.appendChild(sessionStorage.getItem("name"));

请帮我解决。谢谢你的任何想法。

** JavaScript只有Jquery

1 个答案:

答案 0 :(得分:0)

替换

  tableRef.appendChild(sessionStorage.getItem("name"));

  newRow.appendChild(sessionStorage.getItem("name"));

tableRef是对表的引用,其中在newRow变量中获取对tbody的引用。替换会将行添加到tbody。

同样删除/删除重复的问题或问题,而不是你在论坛上提到的2个问题。

尝试并调​​试脚本,查看每个变量中的值。