在第一个循环之前初始化计数器
Initialise a counter before the first loop
这一行
$.each(data[0].hotel_id, function (index, value) {
循环hotel_id
数组,为字典中的每个条目执行内部JS代码,将索引设置为字典中的键,并将值设置为内容。
我的字典:
"hotel_id": [{
"hotel_id": ["1"]
}, {
"hotel_id": ["2"]
}, {
"hotel_id": ["3"]
}, {
"hotel_id": ["4"]
}],
具有相同索引的所有项,因此index的值将始终为'hotel_id',当我试图使用它从其他字典中查找相关的额外数据时,这对我来说是没有用的。
我将在第一次循环之前初始化一个计数器,并在每次迭代时增加它,然后使用该值从其他数组中查找相关的额外数据。
查看我的js代码:http://pastebin.com/jBWEDZrN
这是总结从我的js代码在ajax调用(url: 'get_gr',
):
$.each(data[0].hotel_id, function (index, value) {
var $li = $('<li><input name="hotel_id[]" value="' + value.hotel_id + '" style="display:none;"></li>');
var $tooltip = $('<div class="tooltip"></div>').appendTo($li);
$li.appendTo('#residence_name');
var info_ru = data[0].residence_u[index];
$.each(info_ru.units, function (index, value) {
$tooltip.append(value + ' & ' + info_ru.extra[index] + ' & ' + info_ru.price[index] + '<br>');
});
var info_rp = data[0].residence_p[index];
$.each(info_rp.start_date, function (index, value) {
$tooltip.append(value + ' & ' + info_rp.end_date[index] + ' & ' + info_rp.price_change[index] + '<br>');
});
tool_tip()
});
这是输出php代码(url: 'get_gr',
):
[{
"guide": null,
"hotel_id": [{
"hotel_id": ["1"]
}, {
"hotel_id": ["2"]
}, {
"hotel_id": ["3"]
}, {
"hotel_id": ["4"]
}],
"residence_u": [{
"units": ["hello", "how", "what"],
"extra": ["11", "22", "33"],
"price": ["1,111,111", "2,222,222", "3,333,333"]
}, {
"units": ["fine"],
"extra": ["44"],
"price": ["4,444,444"]
}, {
"units": ["thanks", "good"],
"extra": ["55", "66"],
"price": ["5,555,555", "6,666,666"]
}],
"residence_p": [{
"start_date": ["1111", "2222"],
"end_date": ["1111", "2222"],
"price_change": ["1111", "2222"]
}, {
"start_date": ["3333", "444"],
"end_date": ["3333", "4444"],
"price_change": ["3333", "4444"]
}, {
"start_date": ["5555", "6666"],
"end_date": ["5555", "6666"],
"price_change": ["5555", "6666"]
}]
}]
我该怎么办?
更新:(此更新是针对上面的输出php)
我插入几个(array
)值与json_encode
在一行从数据库表,现在想要回声他们与jquery的顺序。
输出js代码如下:
1
hello
&11
,1,111,111
how
&22
,2,222,222
what
&33
,3,333,333,
1111
&1111
,1111
2222
&2222
,2222
2
fine
&44
,4,444,444
3333
&3333
,3333
4444
&4444
,4444
3
thanks
&55
,5,555,555
good
&66
,6,666,666
5555
&5555
,5555
6666
&6666
,6666
4
不,您的数组中没有具有相同索引的项。它具有具有不同索引的项,但该值是一个对象,其中包含每个对象具有相同名称的属性。如果数组中有四个元素,索引将从0
到3
。
您可以在循环中使用value.hotel_id
来获取作为属性值的数组,例如["1"]
。
如果属性中的数组只包含一个id,您可以使用value.hotel_id[0]
来获取该id。
的例子:
$.each(data[0].hotel_id, function (index, value) {
alert(value.hotel_id[0]);
});
http://jsfiddle.net/Guffa/BWLqw/
我不明白使用each
和匿名函数的意义。
我只会使用for循环。
for(var n = 0; n < data[0].hotel_id.length; n++) {
// put your function code here or call a named func(data[0].hotel_id[n])
}
我只在应用将在其他地方重用的函数时使用它们。
- 使用javascript函数在页面初始化后加载jquery
- 未捕获错误:无法在初始化之前调用方法;
- 如何在剑道网格初始化后设置pageSizes
- React redux初始化功能,无论状态变化如何
- 为什么可以't Protractor在自动初始化的Angular网站上查找Angular
- 尝试初始化()Spine's控制器和故障
- Angular.js延迟控制器初始化
- 对插件初始化后动态加载的元素进行样式设置
- Angular JS控制器初始化错误
- 在XMLHttpRequest之后重新初始化jQuery
- ember-js组件初始化不同的函数
- Youtube JavaScript API不是't正在初始化
- 函数无法识别初始化的变量
- datepicker引导程序再次初始化
- jquery数据表在初始化时设置宽度
- 如何使用app和secret进行安全的解析初始化
- 从javascript中再次初始化c变量
- ng重复中的ng模型-初始化唯一作用域属性
- 正在Ajax调用上初始化主干视图
- 在第一个循环之前初始化计数器