0

これが、私が取り組んでいる在庫システムの始まりです。基本的に、圧縮形式のアイテムと数量の配列を取り、アイテムをアイテム 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 の配列からアイテムの数量を出力します。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>
4

2 に答える 2

1

.get(i)メソッドを持たない DOM 要素を返します.html()- それが js エンジンがあなたに言いたいことです。

.eq(i)代わりに使用する必要があります。お気に入り

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

また

$('.item_amount:eq(' + i + ')').html(collection[itemName].amo);
于 2012-07-12T05:18:45.097 に答える
0

この行は問題になる可能性があります

 var itemName = 'item' + (i + 1); // 

これにより、配列カウントが上限を超える可能性があります。itemName の値を確認してください。

また、これに対するアラートを追加してみてください

 collection[itemName].amo
于 2012-07-12T05:20:02.233 に答える