使用JavaScript将全局变量调用为两个函数

时间:2017-10-23 08:33:52

标签: javascript variables global

我有一个全局变量:

var x = document.getElementById("Node").value;

其中值由ID为“Node”的文本框确定。

如果根据输入到文本和下拉列表中的值创建预设注释,我有两个不同的功能。如何将上述全局变量调用到这些函数中并将其添加到创建的语句中。两个函数看起来都一样:

这适用于一个功能,但不适用于两个功能。我所拥有的是几个文本框和下拉菜单。其中一个文本框是一个名为Node的全局值。填充节点时,我希望能够将该值拉入两个函数。这是我对两者的看法。

//Declare Node as a Global Variable
var x = document.getElementById("Node").value;

//Populates the Summary box
function mySummary() {
    var a = document.getElementById("Field1").value;
    var b = document.getElementById("Field2").value;
    var c = document.getElementById("Field3").value;
    var d = document.getElementById("Field4").value;
    document.getElementById("Summary").innerHTML = a + " - " + b + " - " + c + " - " + x + " -" + d;
}

//Populates the Notes box
function myNotes() {
    var a = document.getElementById("Field5").value;
    var b = document.getElementById("Field6").value;
    var c = document.getElementById("Field7").value;
    var d = document.getElementById("Field8").value;
    var e = document.getElementById("Field9").value;
    document.getElementById("Notes").innerHTML = x + " - " + a + " / " + b + " - " + c + "% Offline - " + d + " - " + e + " - " + f;
}

问题是X的值不会同时被输入到两个函数中。输出进入文本区域

如果我在每个函数中创建一个局部变量并让用户在每个文本框中输入两次相同的信息它可以正常工作,但我希望它们只输入一次信息并将其拉入每个文本区域

2 个答案:

答案 0 :(得分:0)

您可以简单地使用:

window.x = document.getElementById("Node").value;

答案 1 :(得分:0)

试试这个



(function() {
    var x = document.getElementById("Node").value;
    document.getElementById("Node").onchange = function() {
      myNode()
    };
    document.getElementById("mySelect1").onchange = function() {
      myNotes()
    };
    document.getElementById("mySelect2").onclick = function() {
      summary()
    };
    
     function myNode() {
      x = document.getElementById("Node").value;
    }

    function summary() {
      var a = document.getElementById("mySelect1").value;
      var b = document.getElementById("mySelect2").value;
      document.getElementById("5").value = a + " - " + b + " - " + x;
    }

    function myNotes() {

      var a = document.getElementById("mySelect1").value;
      var b = document.getElementById("mySelect2").value;
      document.getElementById("4").value = a + " + " + b + " + " + x;
    }


  }





)();

Notes : <input type="text" id="4" /><br> Summary : <input type="text" id="5" /><br>
<select id="Node">
  <option value="w">w
  <option value="x">x
  <option value="y">y
  <option value="z">z
</select>
<select id="mySelect2">
  <option value="a">a
  <option value="b">b
  <option value="c">c
  <option value="d">d
</select>
<select id="mySelect1">
  <option value="1">1
  <option value="2">2
  <option value="3">3
  <option value="4">4
</select>
&#13;
&#13;
&#13;