返回JS函数内的值

时间:2009-07-15 00:53:31

标签: javascript return-value

有人可以向我解释为什么我不能在函数内部使用document.getElementById('id')。value?

我试图制作一个简单的乘法脚本(我正在学习JS,它实际上有点好玩)并且很快就意识到输入整行代码只是为了返回一个值是多么烦人,所以我写了一个小函数:

<script type="text/javascript">
function value(elementid){
return document.getElementById(elementid).value
}
</script>

但是,这不起作用,只会破坏我整个脚本的功能。我想简单地输入value('id')来返回元素的值。

要修复它,朋友建议我取出函数中的.value并将其添加到我调用函数的每一行的末尾,比如value('id')。value。

为什么我的第一种方式不起作用?

感谢您的帮助!

6 个答案:

答案 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'更改为其他