Jquery$。每个循环计数器
在文本输入中键入数据时,我正在运行此代码:Jquery$。每个循环计数器,jquery,Jquery,在文本输入中键入数据时,我正在运行此代码: $("input#search").live("keyup", function(e) { var search_string = $(this).val(); var i = 0; var trHTML = ''; if(search_string !== '') { $.ajax({ type: "POST",
$("input#search").live("keyup", function(e) {
var search_string = $(this).val();
var i = 0;
var trHTML = '';
if(search_string !== '') {
$.ajax({
type: "POST",
dataType: "json",
url: "/section/search_go",
data: { query: search_string },
cache: false,
success: function(response) {
$.each(response, function(i, item) {
trHTML += '<tr>';
trHTML += '<td>' + item.accountnumber + '</td>';
trHTML += '<td>' + item.company + '</td>';
trHTML += '<td>' + item.phone + '</td>';
trHTML += '<td>' + item.postcode + '</td>';
trHTML += '</tr>';
});
$('#customers').html(trHTML);
}
});
console.log(i);
}
/*if(counter === 0 || search_string == '') {
$('#customers').html('<tr><td colspan="4">No Results</td></tr>');
}*/
});
$(“输入#搜索”).live(“键控”,函数(e){
var search_string=$(this.val();
var i=0;
var trHTML='';
如果(搜索字符串!=''){
$.ajax({
类型:“POST”,
数据类型:“json”,
url:“/section/search\u go”,
数据:{query:search_string},
cache:false,
成功:功能(响应){
$。每个(响应、功能(i、项目){
trHTML+='';
trHTML+=''+item.accountnumber+'';
trHTML+=''+item.company+'';
trHTML+=''+item.phone+'';
trHTML+=''+item.postcode+'';
trHTML+='';
});
$('#customers').html(trHTML);
}
});
控制台日志(i);
}
/*如果(计数器===0 | |搜索字符串==''){
$('#customers').html('无结果');
}*/
});
我正在尝试获取$中的记录数。每个循环都有记录,但我似乎无法做到这一点
我尝试过使用函数中的i
,我也尝试过添加计数器
变量,我为每个循环添加了计数器+
,但仍然不起作用我希望如果您需要获得循环运行的次数
只需做response.length
。两者都是一样的
$("input#search").live("keyup", function(e) {
var search_string = $(this).val();
var resultLength; //Declare variable
var i = 0;
var trHTML = '';
if(search_string !== '') {
$.ajax({
type: "POST",
dataType: "json",
url: "/section/search_go",
data: { query: search_string },
cache: false,
success: function(response) {
resultLength = response.length; //assign the length
$.each(response, function(i, item) {
trHTML += '<tr>';
trHTML += '<td>' + item.accountnumber + '</td>';
trHTML += '<td>' + item.company + '</td>';
trHTML += '<td>' + item.phone + '</td>';
trHTML += '<td>' + item.postcode + '</td>';
trHTML += '</tr>';
});
$('#customers').html(trHTML);
}
});
console.log(i);
}
/*if(resultLength === 0 || search_string == '') { //access here
$('#customers').html('<tr><td colspan="4">No Results</td></tr>');
}*/
});
$(“输入#搜索”).live(“键控”,函数(e){
var search_string=$(this.val();
var resultLength;//声明变量
var i=0;
var trHTML='';
如果(搜索字符串!=''){
$.ajax({
类型:“POST”,
数据类型:“json”,
url:“/section/search\u go”,
数据:{query:search_string},
cache:false,
成功:功能(响应){
resultLength=response.length;//指定长度
$。每个(响应、功能(i、项目){
trHTML+='';
trHTML+=''+item.accountnumber+'';
trHTML+=''+item.company+'';
trHTML+=''+item.phone+'';
trHTML+=''+item.postcode+'';
trHTML+='';
});
$('#customers').html(trHTML);
}
});
控制台日志(i);
}
/*如果(resultLength==0 | | search_string===''){//access here
$('#customers').html('无结果');
}*/
});
我希望如果您需要运行循环的次数
只需做response.length
。两者都是一样的
$("input#search").live("keyup", function(e) {
var search_string = $(this).val();
var resultLength; //Declare variable
var i = 0;
var trHTML = '';
if(search_string !== '') {
$.ajax({
type: "POST",
dataType: "json",
url: "/section/search_go",
data: { query: search_string },
cache: false,
success: function(response) {
resultLength = response.length; //assign the length
$.each(response, function(i, item) {
trHTML += '<tr>';
trHTML += '<td>' + item.accountnumber + '</td>';
trHTML += '<td>' + item.company + '</td>';
trHTML += '<td>' + item.phone + '</td>';
trHTML += '<td>' + item.postcode + '</td>';
trHTML += '</tr>';
});
$('#customers').html(trHTML);
}
});
console.log(i);
}
/*if(resultLength === 0 || search_string == '') { //access here
$('#customers').html('<tr><td colspan="4">No Results</td></tr>');
}*/
});
$(“输入#搜索”).live(“键控”,函数(e){
var search_string=$(this.val();
var resultLength;//声明变量
var i=0;
var trHTML='';
如果(搜索字符串!=''){
$.ajax({
类型:“POST”,
数据类型:“json”,
url:“/section/search\u go”,
数据:{query:search_string},
cache:false,
成功:功能(响应){
resultLength=response.length;//指定长度
$。每个(响应、功能(i、项目){
trHTML+='';
trHTML+=''+item.accountnumber+'';
trHTML+=''+item.company+'';
trHTML+=''+item.phone+'';
trHTML+=''+item.postcode+'';
trHTML+='';
});
$('#customers').html(trHTML);
}
});
控制台日志(i);
}
/*如果(resultLength==0 | | search_string===''){//access here
$('#customers').html('无结果');
}*/
});
控制台。日志(i)必须位于每个函数的内部
success: function(response) {
$.each(response, function(i, item) {
trHTML += '<tr>';
trHTML += '<td>' + item.accountnumber + '</td>';
trHTML += '<td>' + item.company + '</td>';
trHTML += '<td>' + item.phone + '</td>';
trHTML += '<td>' + item.postcode + '</td>';
trHTML += '</tr>';
console.log(i); // this "i" from here function(i, item)
});
成功:功能(响应){
$。每个(响应、功能(i、项目){
trHTML+='';
trHTML+=''+item.accountnumber+'';
trHTML+=''+item.company+'';
trHTML+=''+item.phone+'';
trHTML+=''+item.postcode+'';
trHTML+='';
console.log(i);//这个“i”from here函数(i,item)
});
控制台。日志(i)必须位于每个函数的内部
success: function(response) {
$.each(response, function(i, item) {
trHTML += '<tr>';
trHTML += '<td>' + item.accountnumber + '</td>';
trHTML += '<td>' + item.company + '</td>';
trHTML += '<td>' + item.phone + '</td>';
trHTML += '<td>' + item.postcode + '</td>';
trHTML += '</tr>';
console.log(i); // this "i" from here function(i, item)
});
成功:功能(响应){
$。每个(响应、功能(i、项目){
trHTML+='';
trHTML+=''+item.accountnumber+'';
trHTML+=''+item.company+'';
trHTML+=''+item.phone+'';
trHTML+=''+item.postcode+'';
trHTML+='';
console.log(i);//这个“i”from here函数(i,item)
});
您的方法的主要问题是,$.ajax()
调用是异步的。这是web开发的一个非常重要的部分:ajax请求(以及通常的HTTP请求)可能需要很长时间(有时需要30秒或更长的时间),如果您的JavaScript代码在等待完成时被阻止,则整个浏览器将被锁定。(有关详细信息,请参阅链接的MDN文章。)
这对您意味着任何依赖于$.ajax()
请求结果的代码都必须从success
回调函数中触发,该回调函数在HTTP请求成功返回数据时运行
关于代码的另一条评论,与您的问题无关: