jquery变量值表示未定义

jquery变量值表示未定义,jquery,Jquery,变量$x10Device在if语句中表示未定义为什么?在函数的其余部分,它有一个值,我如何让它保持它的值 $("button.checkStatus").click(function () { //This Ajax checks the current on/off status of the passed X10 code $('.checkStatus').each(function (i, obj) { $x10Device = $(this).data(

变量$x10Device在if语句中表示未定义为什么?在函数的其余部分,它有一个值,我如何让它保持它的值

$("button.checkStatus").click(function () {
    //This Ajax checks the current on/off status of the passed X10 code
    $('.checkStatus').each(function (i, obj) {
        $x10Device = $(this).data("x10");
        //var data = "url=http://192.168.0.34:81/tenHsServer/tenHsServer.aspx?t=ab&f=DeviceStatus&d=C5" //& $x10Device ; //this is passed in the device toggle

        var data = "url=http://192.168.0.34:81/tenHsServer/tenHsServer.aspx?t=ab&f=DeviceStatus&d=" + $x10Device; //this is passed in the device toggle

        $.ajax({
            url: "urlencode.php",
            data: data,
            type: "POST",
            success: function (data) {
                myd = $('<span />').html(data).find("#Result").text();
                var Nmyd = myd.charAt(3);
                if (Nmyd == '2') {
                    $($x10Devic).data('src', 'lightbulbon.png')
                } else {
                    $('img').attr('src', 'lightbulboff.png')
                };
            },
            error: function (request, status, error) {
                alert(request.responseText);
            }
        });
    });
});
$(“按钮.检查状态”)。单击(函数(){
//此Ajax检查传递的X10代码的当前开/关状态
$('.checkStatus')。每个(函数(i,obj){
$x10Device=$(此).data(“x10”);
//var data=“url=http://192.168.0.34:81/tenHsServer/tenHsServer.aspx?t=ab&f=DeviceStatus&d=C5“//&$x10Device;//这在设备切换中传递
var data=“url=http://192.168.0.34:81/tenHsServer/tenHsServer.aspx?t=ab&f=DeviceStatus&d=“+$x10Device;//这是在设备切换中传递的
$.ajax({
url:“urlencode.php”,
数据:数据,
类型:“POST”,
成功:功能(数据){
myd=$(“”).html(数据).find(“#结果”).text();
var Nmyd=myd.charAt(3);
如果(Nmyd=='2'){
$($x10Devic.data('src','lightbulbon.png'))
}否则{
$('img').attr('src','lightbulboff.png'))
};
},
错误:功能(请求、状态、错误){
警报(request.responseText);
}
});
});
});

不确定这是否是全部问题,但您有一个输入错误:


$x10Device
$x10Devic
相比,
$x10Device
的定义是错误的(如上下文所示)。您将使用两个变量消除这些错误以避免混淆:
$Device=$(this)$x10=$Device.data('x10')

$(“按钮.检查状态”)。单击(函数(){
$('.checkStatus')。每个(函数(i,obj){
/**
*这些更改假定$x10Device不是全局变量
*/
变量$Device=$(此),
$x10=$Device.data(“x10”),
data=“url=http://192.168.0.34:81/tenHsServer/tenHsServer.aspx?t=ab&f=DeviceStatus&d=“+$x10;
$.ajax({
url:“urlencode.php”,
数据:数据,
类型:“POST”,
成功:功能(数据){
myd=$(“”).html(数据).find(“#结果”).text();
var Nmyd=myd.charAt(3);
如果(Nmyd=='2'){
$Device.data('src','lightbulbon.png')
}否则{
$('img').attr('src','lightbulboff.png'))
};
},
错误:功能(请求、状态、错误){
警报(request.responseText);
}
});
});
});

$x10Device的值是多少?尝试使用
console.log($x10Device)
并查看它的输出。选择一个更简单的变量名,并正确格式化代码,可以解决大多数错误。作为旁注,您正在使用querystring和works将整个URL作为
数据
传递给$.ajax?这在服务器端是如何工作的!
console.log($(this))的输出是什么?在哪里设置此值?是否每个对象上都有
checkstatus
类?是否
对象数据(“x10”)工作?@adeneo,这可能是服务器端的一个开关,在服务器端,POST值可选地花了一段时间查看代码,没有看到输入错误,但没有更正。变量保存“c5”,例如AJAX调用返回c5:3;3告诉我设备c5当前处于打开状态,我使用if语句将img替换为jpg上的灯泡,以表示这一点。对不起,我不知道一个更简单的名字是怎么起作用的,因为我自己的拼写错误$x10未定义$(这个)按钮不是吗?按钮没有数据属性值,只有img标签有数据属性。我不知道
$Device
是什么,从代码中我只能推断它是一个带有
class=“checkStatus”
的DOM元素
$Device
是其中的每一个元素,
$x10
是与其关联的
x10
jQuery数据。这不是我的错误,谢谢,它似乎在Ajax中退出了,只是当我逐步浏览代码时,看看为什么会有这些更改,当我到达success:line时,它会点击error函数,但不会显示警报,然后返回循环的开始??
$("button.checkStatus").click(function(){
    $('.checkStatus').each(function (i,obj){
        /**
         * These changes assume that $x10Device was NOT a global variable
         */
        var $Device = $(this),
        $x10 = $Device.data("x10"),
        data = "url=http://192.168.0.34:81/tenHsServer/tenHsServer.aspx?t=ab&f=DeviceStatus&d=" + $x10;

        $.ajax({
            url: "urlencode.php",
            data: data,
            type: "POST",
            success: function (data) {
                myd = $('<span />').html(data).find("#Result").text();
                var Nmyd = myd.charAt(3);
                if (Nmyd == '2') {
                    $Device.data('src', 'lightbulbon.png')
                } else {
                    $('img').attr('src', 'lightbulboff.png')
                };
            },
            error: function (request, status, error) {
                alert(request.responseText);
            }
        });
    });
});