在 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, quantity
与 quantity
相同。使用 for in
循环迭代多个数组没有特殊的语法。您在这里使用的逗号只是一个 comma operator。
for 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 ;
我正在尝试从购物车 (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, quantity
与 quantity
相同。使用 for in
循环迭代多个数组没有特殊的语法。您在这里使用的逗号只是一个 comma operator。
for 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 ;