jquery变量值表示未定义
变量$x10Device在if语句中表示未定义为什么?在函数的其余部分,它有一个值,我如何让它保持它的值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(
$("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);
}
});
});
});