2017-07-28 58 views
0

我有這一段代碼:元素屬性返回「未定義」無故

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); 
    } 
} 

第一日誌返回實際的元件:

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

但第二日誌返回

undefined 

它爲什麼這樣做? 爲什麼它不是返回元素「value」屬性的值?
我該如何解決它?

+0

什麼是項目[i]的console.log? –

+0

@chiragsatapara多數民衆贊成在第一個日誌 – stav

回答

4

<div>元素節點不具有「值」屬性。這僅適用於<input>和其他表單控件。如果您在標籤中添加「值」屬性,則必須使用.getAttribute()來獲取該值。

根據您要做的事情,您可以檢查子元素並檢查「nodeType」屬性,以便知道訪問內容的方式/方式。

+0

謝謝,我會接受答案,當我可以:) – stav

1

您已經使用data-*屬性在data-total="5",如所指出的@Pointy <div>元素沒有.value財產。您可以用data-value="0"代替value="0"並使用HTMLElement.dataset來獲取或設置該值。

console.log(items[i].dataset.value);