我想使函数中的“变量ID”成为全局变量。我可以在函数外部的警报中使用它的值。那就是我的代码:
<script>
function myFunctionGetCode() {
var code = getInputVal('code'); //get value from Textinputfield from html
var con = "/";
var id = con+code;
}
alert(id);
</script>
答案 0 :(得分:1)
您没有指定最终目标是什么,或者为什么要尝试将id
移到全局范围,但是您可以通过简单地将var id
(声明)移到函数外部来实现,那么它将是全局的,并且所有功能都可以访问。
很明显,alert
将显示"undefined"
,因为id
仅在调用myFunctionGetCode()
时才获得一些值。
下面的代码显示了这一点。
var id;
function myFunctionGetCode() {
var code = getInputVal('code'); //get value from Textinputfield from html
var con = "/";
id = con+code;
console.log(id)
}
alert(id);
function getInputVal(elemId){
return document.getElementById(elemId).value;
}
<input id="code"/>
<button onclick="myFunctionGetCode()">Get Id</button>
但是,如果仅当警报值达到某个值时才想将其与id
一起引发警报,则应在函数内移动alert()
。 (您仍然可以在函数外部声明id
变量以使其全局或在函数内部进行声明,如您目前所拥有的那样)
打开摘要以查看:
//var id; -> You can still declare it here (as global)
function myFunctionGetCode() {
var code = getInputVal('code');
var con = "/";
var id = con+code; //or you can declare it here, but not global
alert(id);
}
function getInputVal(elemId){
return document.getElementById(elemId).value;
}
<input id="code"/>
<button onclick="myFunctionGetCode()">Get Id</button>
答案 1 :(得分:1)
从您的示例代码中,我想您不想使全局值成为一个全局值,而是想要返回一个值-毕竟,您正在函数内部执行了一个操作,该操作从某些输入中计算出一个值。
因此,您将使用return关键字,并调用该函数以获取值:
<script>
function myFunctionGetCode() {
var code = getInputVal('code'); //get value from Textinputfield from html
var con = "/";
var id = con+code;
return id;
}
alert(myFunctionGetCode());
</script>
通常,您不想使函数变量成为全局变量,因为这意味着可以在脚本或网站中的任何位置更改该值,这可能会导致副作用和函数中的意外值。如果您需要传递使用中的功能参数(或从类似情况的文本输入中读取),则要返回结果,请使用return。
答案 2 :(得分:0)
您可以在函数内部移动警报还是从函数中返回“ id”值?
您可以通过执行以下操作使变量成为全局变量: window.your_namespace.id =值;
,然后以相同的方式访问变量: 值= window.your_namespace.id
,但最好不要使用全局名称空间传递数据。
答案 3 :(得分:0)
您必须将var id设置为窗口对象的属性,然后才能在函数外部访问id。
function myFunctionGetCode() {
var code = getInputVal('code'); //get value from Textinputfield from html
var con = "/";
window.id = 10;// Change to this
}
myFunctionGetCode();
alert(id);