我有这段代码:
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 :(得分: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);