我正在尝试从ID =>获取值vname到变量 name
归来应该是“Loren”, 我尝试使用和不使用值属性调用但不起作用。我错过了什么?
<html>
<head>
<script>
var name = document.getElementById("vname").value;
alert(name);
</script>
</head>
<body>
<p id="vname" value="firstname">Loren</p>
</body>
</html>
答案 0 :(得分:4)
这里有三个错误:
您尝试在元素存在之前访问该元素在传送之前不能吃比萨饼...有关详细信息,请参阅Why does jQuery or a DOM method such as getElementById not find the element?。
<p>
HTML元素没有value
属性。在您的情况下,value
是非标准的HTML属性。如果您想使用自定义属性,请改用data-*
attributes。
p
DOM元素没有value
属性。只有表单控件元素(input
,select
等)才具有此属性。如果您想获取元素的内容,请改用innerHTML
或textContent
。
如果您打开了浏览器的控制台,则会看到错误,因为无法找到ID为vname
的元素。熟悉您的浏览器开发人员工具,以便您可以自行解决此类问题。
答案 1 :(得分:1)
你无法获得&#34;价值&#34;一个p元素,你必须得到&#34; innerHTML&#34;
试试这个:var name = document.getElementById("vname").innerHTML;
答案 2 :(得分:0)
尝试var name = document.getElementById(&#34; vname&#34;)。innerHTML;
答案 3 :(得分:0)
当您尝试访问时,#vname
尚未在DOM中。您需要在元素后添加脚本标记或等待加载DOM。
如果说<p>
标记不能有值。请改用data-value
:
<p id="vname" data-value="firstname">Loren</p>
<script>
var vname = document.getElementById("vname");
var value = vname.getAttribute('data-value');
console.log(value);
</script>