簡體   English   中英

從函數獲取變量到另一個javascript

[英]get variable from function to another javascript

我試圖將變量的值從一個函數傳遞給另一個函數

function changeParent(){
    $(document).ready(function(){
        $('a').on('click',function() {
            var x = $(this).attr('id');
            var y = $(this).attr('name');
            $.ajax({
                type: 'POST',
                url: 'http://test.local/Family.php?action=getId',
                data: {'childId' : y},
                success: function(msg) {
                    document.getElementById('names').value = x;
                    msg = x ;
                }
            });
        });
    });
}

第二個函數從第一個函數調用msg

$(document).ready(function(){
    $('#saveId').on('click',function() {
        alert(msg);        
    });
});

我試過了

alert(window.msg);

但是它沒有獲得msg的最后一個值。 我該如何通過?

在兩個函數的范圍之外聲明一個變量。 成功回調函數中有一個msg ,因此當您調用msg = x它實際上將x分配給了該引用。

var message;

function changeParent(){
   $(document).ready(function(){
        $('a').on('click',function() {
            var x = $(this).attr('id');
            var y = $(this).attr('name');
            $.ajax({
                type: 'POST',
                url: 'http://test.local/Family.php?action=getId',
                data: {'childId' : y},
                success: function(msg) {
                    document.getElementById('names').value = x;
                    message = x ;
                }
            });
        });
    });
}

$(document).ready(function(){
    $('#saveId').on('click',function() {
        alert(message);        
    });
});

這樣,可變message可用於兩個功能。

msg的作用域為第一個文檔就緒功能,而第二個功能不可用。

<button id="btn1">
Button 1
</button>

<button id="btn2">
Button 2
</button>

請注意,如何僅在第一個文檔就緒函數內部定義msg1,但是如何全局定義msg2(而不是在函數內部)。 按鈕1將不起作用,按鈕2將在最后檢查小提琴。

var msg2
$(document).ready(function(){
  var msg1 = "Hello World"
  msg2 = "Goodbye World"

})

$(document).ready(function(){

  $("#btn1").on("click", function(e) {
    e.preventDefault()
        alert(msg1)
  })
  $("#btn2").on("click", function(e) {
    e.preventDefault()
        alert(msg2)
  })
})

小提琴: http : //jsfiddle.net/tnj4yLeg/3/

問題是味精。 您的味精在成功回調中只有局部變量也很奇怪:

success: function(msg) {
     document.getElementById('names').value = x;
     msg = x ;
  }

//沒有意義! msg對於回調函數是arg

使全局變量:

var Message  = '';

成功介紹:

Message = msg;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM