有人可以向我解释为什么我不能在函数内部使用document.getElementById('id')。value?
我试图制作一个简单的乘法脚本(我正在学习JS,它实际上有点好玩)并且很快就意识到输入整行代码只是为了返回一个值是多么烦人,所以我写了一个小函数:
<script type="text/javascript">
function value(elementid){
return document.getElementById(elementid).value
}
</script>
但是,这不起作用,只会破坏我整个脚本的功能。我想简单地输入value('id')来返回元素的值。
要修复它,朋友建议我取出函数中的.value并将其添加到我调用函数的每一行的末尾,比如value('id')。value。
为什么我的第一种方式不起作用?
感谢您的帮助!
答案 0 :(得分:5)
将您的功能名称更改为“ getValue ”。 此代码适用于我的机器:P
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<script type="text/javascript">
function getvalue(id) {return document.getElementById(id).value;}
</script>
</head>
<body>
<input type="text" id="Text1" />
<input type="button" onclick="alert(getvalue('Text1'))" /> <br />
<input type="text" id="Text2" />
<input type="button" onclick="alert(getvalue('Text2'))" /> <br />
<input type="text" id="Text3" />
<input type="button" onclick="alert(getvalue('Text3'))" /> <br />
</body>
</html>
答案 1 :(得分:2)
您确定您获得的元素是否具有值属性,而不是像.text或...?
如果它是一个INPUT标记,你也可以使用.value和其他一些HTML控件元素,但是对于常规的DIV,SPAN等我不认为它们公开了.value属性。检查标签文档以查看它们是否支持.value。
答案 2 :(得分:1)
我相信俄罗斯走在正确的轨道上。你可以通过移动&lt; script&gt;来测试这个。阻止到页面的末尾,因为希望除非你有一个复杂的页面结构,否则一切都会加载到那一点。
答案 3 :(得分:1)
并非每个DOM元素都有一个名为value的属性,这可能是您的脚本崩溃的原因。您可以尝试以下方法:
<script type="text/javascript">
function value(elementid){
var el = document.getElementById(elementid);
return el.value || el;
}
</script>
如果它存在或者它不仅仅是元素,它将返回el.value。这不是最优雅的解决方案,但它可能会阻止您的其他脚本破坏。在不知道您调用该函数的上下文的情况下,我无法提供更多信息
答案 4 :(得分:0)
你在做什么应该工作。是什么叫这个?当你调用它时,你的元素可能不在DOM中。即在实际元素之前在内联脚本中调用它。
答案 5 :(得分:-1)
将函数名称从'value'更改为其他