这是我的div:
<div id="demo" align="center" value="1">
<h3>By Color</h3>
<input type="radio" name="group1" id="color1" value="#990000" onClick="changeColor()"/><label for="color1">Red</label>
<input type="radio" name="group1" id="color2" value="#009900" onClick="changeColor()"/><label for="color2">Green</label>
<input type="radio" name="group1" id="color3" value="#FFFF00" onClick="changeColor()" /><label for="color3">Yellow</label><br><br><br>
</div>
我想要该div的value属性(value =“1”)。
我这样想:
function overlay()
{
var cookieValue = document.getElementById("demo").value;
alert(cookieValue);
}
但它显示“未定义”如何使用javascript获取值1请建议任何解决方案,。
答案 0 :(得分:20)
DIV
没有value
属性。
从技术上讲,根据DTD,它们也不应该有value
属性,但在这种情况下通常你会想要使用.getAttribute()
:
function overlay()
{
var cookieValue = document.getElementById('demo').getAttribute('value');
alert(cookieValue);
}
答案 1 :(得分:9)
简而言之,'value'不是div的有效属性。 所以返回undefined绝对正确。
你可以做的就是使用HTML5属性之一'*'
<div id="demo" align="center" data-value="1">
脚本将是:
var val = document.getElementById('demo').getAttribute('data-value');
这应该适用于大多数现代浏览器
请记住将您的doctype设为<!DOCTYPE html>
以使其有效
答案 2 :(得分:4)
正如我在评论中所说,<div>
元素没有value
属性。虽然(非常)不好,但可以访问:
console.log(document.getElementById('demo').getAttribute);
我建议使用HTML5 data-*
属性。像这样:
<div id="demo" data-myValue="1">...</div>
在这种情况下,您可以使用以下方式访问它:
element.getAttribute('data-myValue');
//Or using jQuery:
$('#demo').data('myValue');
答案 3 :(得分:2)
首先
<div id="demo" align="center" value="1"></div>
不是有效的HTML 。阅读自定义数据属性或使用以下内容:
<div id="demo" align="center" data-value="1"></div>
由于“数据值”是一个属性,您必须使用 getAttribute函数来检索其值。
var cookieValue = document.getElementById("demo").getAttribute("data-value");
答案 4 :(得分:1)
你可以试试这个:
var theValue = document.getElementById("demo").getAttribute("value");
答案 5 :(得分:0)
值不是DIV的有效属性
试试这个
var divElement = document.getElementById('demo');
alert( divElement .getAttribute('value'));