从ajax请求全局设置javascript变量?

从ajax请求全局设置javascript变量?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我这里有一段ajax代码: <script> $('a[data-id]').click(function () { var id = $(this).attr('data-id'); var domain = $(this).attr('data-domain'); $.ajax({ url: 'getdata', type: 'GET', dataTyp

我这里有一段ajax代码:

<script>
    $('a[data-id]').click(function () {
        var id = $(this).attr('data-id');
        var domain = $(this).attr('data-domain');
        $.ajax({
            url: 'getdata',
            type: 'GET',
            dataType: 'json',
            data: {id: id, domain: domain},
            success: function (data) {
                var domains = data.name + data.tld;
                var tld = data.tld;
                $('.resultdomain').html(domains);

            }
        });
    });
</script>

$('a[data id]')。单击(函数(){
var id=$(this.attr('data-id');
var-domain=$(this.attr('data-domain');
$.ajax({
url:'getdata',
键入:“GET”,
数据类型:“json”,
数据:{id:id,domain:domain},
成功:功能(数据){
var domains=data.name+data.tld;
var tld=data.tld;
$('.resultdomain').html(域);
}
});
});
这段代码可以工作,但我的问题是我想全局设置tld变量,以便在if语句中使用它们

我想在我的代码中使用如下变量:

if(tld == .de)
{
document.write('<img src="imagelink.png" alt="denic" class="pull-right">')
}
elseif(tld == .com)
{
document.write('<img src="otherimagelink.png" alt="core" class="pull-right">')
}
if(tld=.de)
{
文件。写入(“”)
}
elseif(tld==.com)
{
文件。写入(“”)
}
但是我不知道如何全局设置tld变量,以便在代码中的任何地方都使用它


谢谢你的帮助

尝试在范围外全局定义
tdl
变量

<script>
      var tdl;
      $('a[data-id]').click(function () {
        var id = $(this).attr('data-id');
        var domain = $(this).attr('data-domain');
        $.ajax({
            url: 'getdata',
            type: 'GET',
            dataType: 'json',
            data: {id: id, domain: domain},
            success: function (data) {
                var domains = data.name + data.tld;
                tld = data.tld;
                $('.resultdomain').html(domains);
                 if(tld == .de)
                 {
                    document.write('<img src="imagelink.png" alt="denic" class="pull-right">')
                 }
                 elseif(tld == .com)
                 {
                    document.write('<img src="otherimagelink.png" alt="core" class="pull-right">')
                 }
            }
        });
    });


</script>

var-tdl;
$('a[data id]')。单击(函数(){
var id=$(this.attr('data-id');
var-domain=$(this.attr('data-domain');
$.ajax({
url:'getdata',
键入:“GET”,
数据类型:“json”,
数据:{id:id,domain:domain},
成功:功能(数据){
var domains=data.name+data.tld;
tld=data.tld;
$('.resultdomain').html(域);
如果(tld=.de)
{
文件。写入(“”)
}
elseif(tld==.com)
{
文件。写入(“”)
}
}
});
});

尝试在范围外全局定义
tdl
变量

<script>
      var tdl;
      $('a[data-id]').click(function () {
        var id = $(this).attr('data-id');
        var domain = $(this).attr('data-domain');
        $.ajax({
            url: 'getdata',
            type: 'GET',
            dataType: 'json',
            data: {id: id, domain: domain},
            success: function (data) {
                var domains = data.name + data.tld;
                tld = data.tld;
                $('.resultdomain').html(domains);
                 if(tld == .de)
                 {
                    document.write('<img src="imagelink.png" alt="denic" class="pull-right">')
                 }
                 elseif(tld == .com)
                 {
                    document.write('<img src="otherimagelink.png" alt="core" class="pull-right">')
                 }
            }
        });
    });


</script>

var-tdl;
$('a[data id]')。单击(函数(){
var id=$(this.attr('data-id');
var-domain=$(this.attr('data-domain');
$.ajax({
url:'getdata',
键入:“GET”,
数据类型:“json”,
数据:{id:id,domain:domain},
成功:功能(数据){
var domains=data.name+data.tld;
tld=data.tld;
$('.resultdomain').html(域);
如果(tld=.de)
{
文件。写入(“”)
}
elseif(tld==.com)
{
文件。写入(“”)
}
}
});
});

您的AJAX调用中包含了
tld
变量的范围。它只能在其定义范围内使用。我把它移到了你的AJAX调用之外

   <script>
        var tld;
        $('a[data-id]').click(function () {
            var id = $(this).attr('data-id');
            var domain = $(this).attr('data-domain');
            $.ajax({
                url: 'getdata',
                type: 'GET',
                dataType: 'json',
                data: {id: id, domain: domain},
                success: function (data) {
                    var domains = data.name + data.tld;
                    tld = data.tld;
                    $('.resultdomain').html(domains);

                }
            });
        });
    </script>

var-tld;
$('a[data id]')。单击(函数(){
var id=$(this.attr('data-id');
var-domain=$(this.attr('data-domain');
$.ajax({
url:'getdata',
键入:“GET”,
数据类型:“json”,
数据:{id:id,domain:domain},
成功:功能(数据){
var domains=data.name+data.tld;
tld=data.tld;
$('.resultdomain').html(域);
}
});
});

您的AJAX调用中包含了
tld
变量的范围。它只能在其定义范围内使用。我把它移到了你的AJAX调用之外

   <script>
        var tld;
        $('a[data-id]').click(function () {
            var id = $(this).attr('data-id');
            var domain = $(this).attr('data-domain');
            $.ajax({
                url: 'getdata',
                type: 'GET',
                dataType: 'json',
                data: {id: id, domain: domain},
                success: function (data) {
                    var domains = data.name + data.tld;
                    tld = data.tld;
                    $('.resultdomain').html(domains);

                }
            });
        });
    </script>

var-tld;
$('a[data id]')。单击(函数(){
var id=$(this.attr('data-id');
var-domain=$(this.attr('data-domain');
$.ajax({
url:'getdata',
键入:“GET”,
数据类型:“json”,
数据:{id:id,domain:domain},
成功:功能(数据){
var domains=data.name+data.tld;
tld=data.tld;
$('.resultdomain').html(域);
}
});
});

您应该检查字符串,而不是
.de
,而是
“.de”

if(tld==“.de”)
{
文件。写入(“”)
}
elseif(tld==“.com”)
{
文件。写入(“”)
}

您应该检查字符串,而不是
.de
,而是
“.de”

if(tld==“.de”)
{
文件。写入(“”)
}
elseif(tld==“.com”)
{
文件。写入(“”)
}

是否尝试将变量声明为全局变量而不是局部变量?(注意ajax是异步的,所以在成功回调运行之前,您无法实际使用全局变量中的值。)好吧,我尝试了类似的方法,但没有真正成功。我对JS不是很在行..你有没有试着将变量声明为全局变量而不是局部变量?(注意ajax是异步的,所以在成功回调运行之前,您无法实际使用全局变量中的值。)好吧,我尝试了类似的方法,但没有真正成功。我在JS上没有做很多工作,我做了,但仍然不起作用。如果我使用console.log(tld),我将获得正确的输出。如果我在我的代码中使用它,比如If(tld==.de){…}什么都没有发生,我不完全确定你的意思。您是否在
tld=data.tld上设置了断点?我认为应该是
tld=data.data.tld我认为tld=data.tld就足够了,因为如果我尝试console.log它,我会得到正确的输出。我这样做了,但仍然不起作用。如果我使用console.log(tld),我将获得正确的输出。如果我在我的代码中使用它,比如If(tld==.de){…}什么都没有发生,我不完全确定你的意思。您是否在
tld=data.tld上设置了断点?我认为应该是
tld=data.data.tld我认为tld=data.tld就足够了,因为如果我尝试console.log,我会得到正确的输出