如何使用javascript获取div的值

sri*_*inu 12 html javascript

这是我的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>
Run Code Online (Sandbox Code Playgroud)

我想要该div的value属性(value ="1").

我这样想:

function overlay()
{
    var cookieValue = document.getElementById("demo").value;    
    alert(cookieValue);
}
Run Code Online (Sandbox Code Playgroud)

但它显示"未定义"如何使用JavaScript获取值1请建议任何解决方案,.

JAA*_*lde 22

DIV没有value 财产.

从技术上讲,根据DTD,它们也不应该有value 属性,但通常你会想要.getAttribute()在这种情况下使用:

function overlay()
{
    var cookieValue = document.getElementById('demo').getAttribute('value');
    alert(cookieValue);
}
Run Code Online (Sandbox Code Playgroud)


Gui*_*use 10

简而言之,'value'不是div的有效属性.所以返回undefined是绝对正确的.

您可以做的是使用HTML5属性之一'data-*'

<div id="demo" align="center"  data-value="1">
Run Code Online (Sandbox Code Playgroud)

脚本将是:

var val = document.getElementById('demo').getAttribute('data-value');
Run Code Online (Sandbox Code Playgroud)

这应该适用于大多数现代浏览器只需记住将您的doctype设置为<!DOCTYPE html>使其有效


Ult*_*nct 5

正如我在评论中所说,<div>元素没有value属性。尽管(非常)糟糕,但可以通过以下方式访问它:

console.log(document.getElementById('demo').getAttribute);
Run Code Online (Sandbox Code Playgroud)

我建议使用 HTML5data-*属性。像这样的东西:

<div id="demo" data-myValue="1">...</div>
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您可以使用以下方法访问它:

element.getAttribute('data-myValue');
//Or using jQuery:
$('#demo').data('myValue');
Run Code Online (Sandbox Code Playgroud)