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/

10-11 19:23
查看更多