Javascript Jquery在.each之后未定义
我从一个.post后调用的.each中得到未定义的结果。下面是我的代码 JavascriptJavascript Jquery在.each之后未定义,javascript,jquery,each,.post,Javascript,Jquery,Each,.post,我从一个.post后调用的.each中得到未定义的结果。下面是我的代码 Javascript var index=0; $("td.load_ads").each(function(){ var loading=$(this); $.post('/self_coded_helpers/jpost_get_ads.php',{index:index,type:'fetch_id'},function(data){ if($("
var index=0;
$("td.load_ads").each(function(){
var loading=$(this);
$.post('/self_coded_helpers/jpost_get_ads.php',{index:index,type:'fetch_id'},function(data){
if($("input.exist").length > 0){
$("input.exist").each(function(){
if($(this).val()==data){
var load='0';
}else{
var load='1';
}
});
}else{
var load='1';
}
alert(load);
if(load == 1){
$.post('/self_coded_helpers/jpost_get_ads.php',{index:index,type:'fetch_details',id:data},function(data2){
$("body").append('<input type="hidden" class="exist" name="exist" value="'+data+'">');
if(data2!=0){
loading.html(load+'--'+data2);
}else{
loading.html("Place a Free Ad Now!");
}
});
}else{
loading.html(load+"--"+data+"Place a Free Ad Now!");
}
});
index=index+1;
});
var指数=0;
$(“td.load_ads”)。每个(函数(){
var加载=$(此);
$.post('/self_-coded_-helpers/jpost_-get_-ads.php',{index:index,type:'fetch_-id',函数(数据){
如果($(“input.exist”).length>0){
$(“input.exist”)。每个(函数(){
if($(this).val()==数据){
var-load='0';
}否则{
var负荷=1';
}
});
}否则{
var负荷=1';
}
警报(负载);
如果(负载==1){
$.post('/self_-coded_-helpers/jpost_-get_-ads.php',{index:index,type:'fetch_-details',id:data},函数(data2){
$(“正文”)。附加(“”);
如果(数据2!=0){
html(load+'-'+data2);
}否则{
html(“立即放置免费广告!”);
}
});
}否则{
html(load+“--”+data+“立即放置免费广告!”);
}
});
指数=指数+1;
});
我想在这里做的是在我的每个td.load_广告上发布一个.post,然后用每个现有的input.val检查数据。如果每个现有输入上的输入值与所收集的数据相同,那么我将不回显第二个.post结果
然而,整个操作似乎没有正确显示。我意识到我的问题出在了.post之后的。当我执行警报(加载)时。返回的结果未定义。是我遗漏了什么,还是我的编码在逻辑上不正确?任何帮助都将不胜感激
/*新增问题/*
所以现在,我有另一个问题,所以我想最好把它加在这里
我尝试附加输入
($(“正文”)。附加(“”);)
在脚本的第二部分
这样,当循环自身重复时,它将能够读取输入并接收新添加的输入值。但是我的load总是返回1,因为我的$(“input.exist”).length总是返回false
或者这是jquery不可能做到的
/*添加问题结束/*您需要提前声明
加载
变量。现在,在一个匿名函数中声明它两次,变量的作用域将限于该函数;var负载=从外部函数的角度来看,代码>语句将没有可观察的效果
请尝试以下方法:
var load = '1';
if($("input.exist").length > 0){
$("input.exist").each(function(){
if($(this).val()==data){
load='0';
}else{
load='1';
}
});
}
alert(load);
您需要提前声明load
变量。现在,在一个匿名函数中声明它两次,变量的作用域将限于该函数;var负载=从外部函数的角度来看,代码>语句将没有可观察的效果
请尝试以下方法:
var load = '1';
if($("input.exist").length > 0){
$("input.exist").each(function(){
if($(this).val()==data){
load='0';
}else{
load='1';
}
});
}
alert(load);
load
在您的each
函数之后超出范围-将其声明移到顶部。在$(“input.exist”)。each(function(){…}
循环中,是否要测试“all”或“any”在匹配项中?就目前情况而言,代码没有这两项。从技术上讲,您不必在函数外部声明load
。只要您没有使用var
声明变量,就可以在整个函数中访问load
在每个函数之后超出范围-移动声明项在$(“input.exist”).each(function(){…}
循环中,要测试“all”还是“any”在匹配项中?就目前情况而言,代码没有这两项。从技术上讲,您不必在函数外部声明load
。只要您没有使用var
声明变量,它就可以在整个函数中访问whao.Nice.Loving StackOverflow这将运行,但您确定它给出了正确的行为吗?whao.很好。这将运行,但您确定它提供了正确的行为吗?