elements属性无缘无故地返回“undefined”

时间:2017-07-28 14:07:01

标签: javascript html

我有这段代码:

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”属性的值?
我该如何修复呢?

2 个答案:

答案 0 :(得分:4)

<div>个元素节点没有“value”属性。这仅适用于<input>和其他表单控件。如果在标记中放置“value”属性,则必须使用.getAttribute()来获取值。

根据您要执行的操作,您可以检查子元素并检查“nodeType”属性,以便了解访问内容的方式/方式。

答案 1 :(得分:1)

您已在data-*使用data-total="5"属性,正如@Pointy <div>元素所指出的那样,没有.value属性。您可以将data-value="0"替换为value="0"并使用HTMLElement.dataset来获取或设置值。

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