2017-07-28 5 views
0

は、「未定義」リターン属性:要素iは、コードのこの部分を持っている理由もなく

<div class="overview-item" value="0" data-total="5">1X item name - 5€<button onclick="RemoveFromCart(0)"></button></div> 

が、第2ログ戻り

undefined 

function RemoveFromCart(id) 
{ 

    var items = document.getElementById("overview").children; 

    for(var i = 0; i < items.length;i++) 
    { 
     console.log(items[i]); 
     console.log(items[i].value); 
    } 
} 

最初のログは、実際の要素を返します

なぜこれを行うのですか? 要素「値」属性の値が返されないのはなぜですか?
どうすれば修正できますか?

+0

項目[i]のconsole.logは何ですか? –

+0

@chiragsatapara thats最初のログ – stav

答えて

4

<div>要素ノードには「値」プロパティがありません。これは<input>と他のフォームコントロールの場合のみです。タグに "value"属性を入れると、.getAttribute()を使用して値を取得する必要があります。

あなたがしようとしていることに応じて、子供の要素を調べ、 "nodeType"プロパティをチェックすることで、何にアクセスするのかを知ることができます。 .value性質を持っていない@Pointy <div>要素で指摘したように

+0

ありがとう、私は私ができるときに答えを受け入れる:) – stav

1

あなたはすでに、data-total="5"data-*属性を使用しています。 value="0"にはdata-value="0"を代入し、値を取得または設定するにはHTMLElement.datasetを使用します。

console.log(items[i].dataset.value); 
関連する問題