Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将get()添加到行中会导致;不是一个函数;错误_Javascript_Jquery - Fatal编程技术网

Javascript 将get()添加到行中会导致;不是一个函数;错误

Javascript 将get()添加到行中会导致;不是一个函数;错误,javascript,jquery,Javascript,Jquery,这是我正在研究的库存系统的开始。基本上,它以压缩的形式获取一个包含项和数量的数组,并将项输出到item div中 运行以下命令不会产生错误: $('.item_amount').html(collection[itemName].amo); 在选择器之后添加get()方法,如下所示: $('.item_amount').get(i).html(collection[itemName].amo); 生成“$(“.item_amount”).get(i).html不是函数” 这是该行正在改变的内

这是我正在研究的库存系统的开始。基本上,它以压缩的形式获取一个包含项和数量的数组,并将项输出到item div中

运行以下命令不会产生错误:

$('.item_amount').html(collection[itemName].amo);
在选择器之后添加get()方法,如下所示:

$('.item_amount').get(i).html(collection[itemName].amo);
生成“$(“.item_amount”).get(i).html不是函数”

这是该行正在改变的内容:

        <div class="item">
        <img src="" class="item_image"/>
        <div class="item_amount"></div>
    </div>

导致错误的行位于for循环中,该循环遍历数组中的所有键。然后根据变量“i”中存储的索引,从item_amount div中的数组中输出item quantity。for循环还为数组中的每个项创建一个对象,并将其放入集合对象中

完整代码如下:

    <body>
    <div class="item">
        <img src="" class="item_image"/>
        <div class="item_amount"></div>
    </div>

    <div class="item">
        <img src="" class="item_image"/>
        <div class="item_amount"></div>
    </div>

    <div class="item">
        <img src="" class="item_image"/>
        <div class="item_amount"></div>
    </div>

<script type="text/javascript">
    var collection = new Object(); 

    function makeItem(itemName, id, amo) {
        collection[itemName] = new item(id, amo); 
    }

    function item(id, amo) { 
        this.id = id;
        this.amo = amo;

    }


    var inventoryCom = "368.9,366.15,384.32"; //compressed inventory
    var inventoryArr = inventoryCom.split(','); 

    for(var i=0; i < inventoryArr.length; i++) {

        var itemName = 'item' + (i + 1); //unique name for each item
        var itemArr = inventoryArr[i].split('.'); 

        makeItem(itemName, itemArr[0], itemArr[1]); 


        $('.item_amount').get(i).html(collection[itemName].amo);
           }

</script>

</body>

var collection=新对象();
函数makeItem(itemName、id、amo){
集合[项目名称]=新项目(id,amo);
}
功能项(id,amo){
this.id=id;
this.amo=amo;
}
var inventoryCom=“368.9366.15384.32”//压缩库存
var inventoryArr=inventoryCom.split(',');
对于(变量i=0;i
返回DOM元素,该元素没有
.html()
方法-这就是js引擎想要告诉您的

你需要改用。像

$('.item_amount').eq(i).html(collection[itemName].amo);


这条线路可能有问题

 var itemName = 'item' + (i + 1); // 
这可能会使数组计数超出上限。检查itemName值

同时尝试为此添加警报

 collection[itemName].amo

这起作用了。我想我也有类似的问题:$('.item_image').get(I).attr('src',collection[itemName].img);我应该用什么来代替get()?@Nick:你不会相信,但你应该用
.eq()
。无意冒犯,但为什么不使用随机函数阅读文档和程序呢?啊。很抱歉谢谢你的帮助。有时问起来容易,研究起来难,因为文档有时对新手来说很难理解。@Nick:至少你应该先试试;-)“有时问起来比研究容易”在这里不是一个很好的理由;-)您需要将listitem的输出放在div中,对吗?如果是这样,我们就不需要“代码”$('.item_amount').get(i).html(collection[itemName].amo);相反,您需要使用'code'$('.item_amount').html(collection[itemName].amo);
 collection[itemName].amo