var menu_items = 0;
$(".trueol").each(function(){
menu_items = menu_items + 1;
});
var product_price = new Array(menu_items);
var product_name = new Array(menu_items);
$(".price").each(function(){
var i = 0;
product_price[i] = $(this).data("p");
document.write(product_price[i]); /*Inner document.write*/
i++;
});
document.write(product_price[2]); /*Outer document.write*/
$(".menu_product").each(function(){
var j = 0;
product_name[j] = $(this).text();
document.write(product_name[j]); /*Inner document.write*/
j++;
});
document.write(product_name[2]); /* Outer document.write */
在这里,内部document.write可以正常工作,但是外部document.write的打印内容未定义。
P.S menu_items迭代后的值为4。有什么问题 ?
最佳答案
解释使用each
迭代器索引的答案是正确的,但是您使问题复杂化了。您可以简单地将值推到数组的末尾并错过任何计数...
var product_price = [];
var product_name = [];
$(".price").each(function(){
var value = $(this).data("p");
product_price.push(value);
document.write(value); /*Inner document.write*/
});
document.write(product_price[2]); /*Outer document.write*/
$(".menu_product").each(function(){
var value = $(this).text();
product_name.push(value);
document.write(value); /*Inner document.write*/
});
document.write(product_name[2]); /* Outer document.write */
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push
如果您需要随时了解数组中的项目数,请使用
product_price.length
要么
product_name.length
另一个提示。我假设您正在使用
document.write
作为出于调试目的而输出数据的方法。尝试改用console.log("text");
,然后打开浏览器控制台(通常是F12,然后转到控制台选项卡)。关于javascript - 无法打印javascript数组值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23404602/