将Javascript变量转换为全局变量

时间:2017-10-25 16:00:20

标签: javascript

我在一个解析数据的不同函数中使用我的getHTML()函数,并将数据显示为HTML字符串。当用户填写完表单后,我想将该信息与用户名和examid一起发送。用户名和examid也来自位置data[0].username的后端和data[1].examid如何将这两个属性转换为全局变量,以便我可以在发送函数中使用它们?

  function getHTML(data){
     var htmlString = "";
        for(var i=0; i < data.length; i++){
            htmlString += "<p>"
                          + data[i].questionid + "." + "\n"
                          + "Question: " + data[i].question
                          + "\n" + "<input type='text' value1='" 
                          +data[i].username+ " value2='" +data[i].examid+ "'>";                 
           htmlString += '</p>';
        }
        response.insertAdjacentHTML('beforeend', htmlString);
    }   

   function send(){ 
           var inputText = document.querySelectorAll("input[type='text']");

            var data = []; 
            for(var index = 0; index < inputText.length; index++){

                input = inputText[index].value;
                data.push({'text' : input});
            }  
            data.push({'username' : username, 'examid' : examid});
      }

3 个答案:

答案 0 :(得分:1)

从任何函数中定义变量,使它们成为全局变量

var username;
var examid;

function(){...}
function(){...}

答案 1 :(得分:0)

window.username = data[i].username;window.examid = data[i].examid

虽然您可能尝试存储多个,但在这种情况下,您需要一个数组。

如果您希望在全局范围内使用window元素,则需要使用它。

答案 2 :(得分: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>