Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在JS函数中返回值_Javascript_Return Value - Fatal编程技术网

Javascript 在JS函数中返回值

Javascript 在JS函数中返回值,javascript,return-value,Javascript,Return Value,有人能解释一下为什么我不能在函数中使用document.getElementById('id')。值吗 我试着编写一个简单的乘法脚本(我在学习JS,其实挺有趣的),很快就意识到键入整行代码只是为了返回一个值是多么烦人,所以我编写了一个小函数: <script type="text/javascript"> function value(elementid){ return document.getElementById(elementid).value } </script&g

有人能解释一下为什么我不能在函数中使用document.getElementById('id')。值吗

我试着编写一个简单的乘法脚本(我在学习JS,其实挺有趣的),很快就意识到键入整行代码只是为了返回一个值是多么烦人,所以我编写了一个小函数:

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

函数值(elementid){
返回文档.getElementById(elementid).value
}
但是,这不起作用,只会破坏我整个脚本的功能。我只想键入value('id')来返回元素的值

为了解决这个问题,一位朋友建议我去掉函数中的.value,并将它添加到我调用函数的每行末尾,比如value('id').value

为什么我的第一条路不起作用


谢谢你的帮助

你所做的应该是有效的。这叫什么?调用元素时,元素可能不在DOM中。例如,在实际元素之前在内联脚本中调用它。

您确定要获取的元素具有value属性,而不是.text或


如果它是一个输入标记,您也可以使用.value和其他一些HTML控件元素,但对于常规的DIV、SPAN等,我认为它们不会公开.value属性。检查标签文档,看看它们是否支持.value。

我相信russau的做法是正确的。您可以通过将块移动到页面末尾来测试这一点,因为除非您有一个复杂的页面结构,否则希望所有内容都能在该点加载。

不是每个DOM元素都有一个名为value的属性,这可能是脚本崩溃的原因。您可以尝试以下方法:

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

函数值(elementid){
var el=document.getElementById(elementid);
返回el.value | | el;
}

如果el.value存在或不只是元素,则返回el.value。这不是最优雅的解决方案,但它可能会阻止其他脚本崩溃。在不知道调用该函数的上下文的情况下,我会情不自禁地将函数名更改为类似“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>

函数getvalue(id){return document.getElementById(id).value;}




将函数名称从“value”更改为其他名称

基本上,任何东西都在调用它,但实际上没有任何东西起作用。我的脚本应该放在头上还是其他什么地方?脚本放在所有html之前,在正文中。你能举一个具体的例子,说明它在哪里被调用而不起作用吗?正如其他人所提到的,这可能与调用时尚未设置DOM有关。这是专门针对输入字段的,所以idk为什么它不起作用。我唯一能想到的是遵循russau的建议。确保在创建元素之前没有调用JavaScript。是否至少在文档/正文onload事件中包装调用?我认为最好粘贴整个脚本