在 Wordpress 中使用 Javascript 从 table 获取数据

Getting data out of table using Javascript in Wordpress

我正在尝试从购物车 (table) 中提取商品列表并将其放入 WP 电子邮件表单中。这段代码(几乎)有效——也就是说,我可以在日志控制台中看到所有项目。但只有最后一项显示在表单的文本区域中。因此,如果购物车中有 1 件商品,它就会落入文本框。但是,如果有 2 个项目,则显示第二个项目而第一个项目不显示。但是我可以在控制台日志中看到这两项。

我对阵列发生的事情完全迷失了。我试过加入、连接并将 'allProducts' 变量转换为字符串。没有任何改变输出。看起来应该很简单。

我不知道如何合并输出,以便所有内容都放入表单的文本区域字段中。

谁能告诉我我错过了什么?

function confirmProducts() {
    var product = Array.prototype.slice.call(document.getElementById("cart").getElementsByClassName("cartLink"));
    var quantity = Array.prototype.slice.call(document.getElementById("cart").getElementsByClaseName("iquantity"));

    for (var i in product, quantity){
        var products = product[i].innerHTML;
        var quantities = quantity[i].value;
        var allProducts = quantities + " " + products;
        document.SUPPLY_PURCHASE.yourorder.value = allProducts ;
        console.log(allProducts);
    }
}
document.SUPPLY_PURCHASE.yourorder.value = allProducts;

您正在覆盖此处文本字段的先前值。您可以使用

document.SUPPLY_PURCHASE.yourorder.value += allProducts;

这会将每个产品添加到文本字段中。您可能想在产品之间添加换行符。

document.SUPPLY_PURCHASE.yourorder.value += allProducts + "\n";

console.log 只是写入控制台,旧的日志条目不会被覆盖。这就是为什么您可以在控制台中看到所有产品的原因。


您的代码还有一些其他问题。 product, quantityquantity 相同。使用 for in 循环迭代多个数组没有特殊的语法。您在这里使用的逗号只是一个 comma operatorfor in 也不是遍历数组的最佳循环。

您正在循环中重置文本区域。将您的产品捕获在一个单独的变量中,并在循环结束时设置文本区域。您将需要换行以合理的方式查看列表。

var productList = "";

for (var i in product, quantity){
var products = product[i].innerHTML;
var quantities = quantity[i].value;
var allProducts = quantities + " " + products + "\r\n";
productList += allProducts;
console.log(allProducts);
}

document.SUPPLY_PURCHASE.yourorder.value = productList ;