从JS获取变量

时间:2018-08-28 13:29:11

标签: javascript ajax

我在<head>中有以下代码,其中包含需要获取的变量(emp.longitudeemp.longitude

<script type="text/javascript">          
        $(document).ready(function () {  
            $.ajax({  
                async: false,
                url: 'GetRecords.asmx/GetValues',  
                dataType: "json",  
                method: 'post',  
                success: function (data) {  
                    var employeeTable = $('#tblEmployee tbody');                     
                    employeeTable.empty();  
                    $(data).each(function (index, emp) {                        
                        employeeTable.append('</td><td>'
                            + emp.latitude + '</td><td>' + emp.longitude + '</td><td>');                        
                    });  
                },  
                error: function (err) {  
                    alert(err +" fail");  
                }  
            });  
        });  
    </script>

<body>中,还有另一个脚本需要在其中使用这些变量:

<script>        
    var mymap = L.map('mapid').setView([38.8, -94.8], 5);
    // need to use them below (longitude and latitude)
    L.marker([longitude,latitude], { icon: truckIcon }).addTo(mymap).bindPopup("I am here!");

    var popup = L.popup();
    function onMapClick(e) {
      popup
         .setLatLng(e.latlng)
          .setContent("You clicked the map at " + e.latlng.toString())
          .openOn(mymap);
     }

    mymap.on('click', onMapClick);
    </script>
  

我已经有一个表格,可以在<body>

中输出这些值
<form id="form1" runat="server">  
        <div class="container">  
            <h3 class="text-uppercase text-center">How to retrive data using ajax in asp.net</h3>  
            <table id="tblEmployee" class="table table-bordered">  
                <thead class="bg-primary text-white">  
                    <tr>                            
                        <th>latitude</th>  
                        <th>longitude</th>                         
                    </tr>  
                </thead>  
                <tbody></tbody>  
            </table>  
        </div>  
    </form>

任何想法都如何让我从头脑中的函数中获取这些变量,并在身体的另一个脚本中使用它们。谢谢。

2 个答案:

答案 0 :(得分:2)

您只需将它们放置在两个代码部分均可访问的位置。

较高的范围是全局范围。如果您仅在$(document).ready(function ()上方放置2个变量,则可以在代码的后面部分访问它们。 但这是不满意的。污染全局范围绝不是一个好习惯,因为可能会干扰其他可能运行的js代码。

正确的方法是找到两个部分都可以访问的方便对象。最明显的答案是document对象。

只要

document.latitute = emp.latitude;
document.longitude = emp.longitude;

甚至更好

document.myProject = { lat: emp.latitude, lon: emp.longitude}; 

在代码的成功部分中,该vars将在以后的部分中访问。 您还可以使用任何DOM的节点来存储和访问变量。

答案 1 :(得分:-2)

将值分配给var,它们将被吊起。

var latitude = 0;
var longitude = 0;

后来在获取中,

latitude = emp.latitude;
longitude = emp.longtitude;

如果不这样做,则必须按照注释中的说明进行操作,并创建一个特殊的函数来获取值。您可以在这里使用吊装,并且只要不做很多事情,就可以了,而不会污染名称空间。