在for循环数组检查和JSON变量方面遇到问题
having troubles with for loop array check and JSON variables
JS代码
<?php
date_default_timezone_set('America/Los_Angeles');
$date = date('Gi', time());
?>
<script type="text/javascript">
$(function() {
$(".show_hide").click( function()
{
var locTime = <?php echo json_encode($date) ?>;
$.getJSON( "url_to_json", function(data) {
var isClosed = true;
for (var i = 0; i < data.location.monday.length || isClosed; i++) {
console.log("sucess1");
xr_mon= data.location.monday[i];
console.log("sucess2");
if (locTime >= xr_mon.kai && locTime < xr_mon.guan ){
console.log("location is open!");
isClosed = false;
$('.xr').show("drop", { direction: "up" }, 400);
}
else {
console.log("location is closed");
$('.xr').hide("drop", {
direction: "down"
}, 800);
}
}
});
}
);
});
</script>
JSON代码
{ "location":
{
"monday": [
{"kai": 700, "guan": 1400},
{"kai": 1700, "guan": 2100}
]
}
}
在多次尝试此循环序列之后。
我仍然不明白为什么即使isClosed满足条件,它仍然在循环。我的代码中有遗漏吗???
找到了我的答案。
<?php
date_default_timezone_set('America/Los_Angeles');
$date = date('Gi', time());
?>
<script type="text/javascript">
$(function() {
$(".show_hide").click( function()
{
var locTime = <?php echo json_encode($date) ?>;
$.getJSON( "url_to_json", function(data) {
for (var i = 0; i < data.location.monday.length; i++) {
console.log("sucess1");
xr_mon= data.location.monday[i];
console.log("sucess2");
if (locTime >= xr_mon.kai && locTime < xr_mon.guan ){
console.log("location is open!");
$('.xr').show("drop", { direction: "up" }, 400);
Break;
}
else {
console.log("location is closed");
$('.xr').hide("drop", {
direction: "down"
}, 800);
}
}
});
}
);
});
</script>
如果我理解得对,(编辑:修改为can)你能试着使用'&;'而不是循环条件中的"||"?
for (var i = 0; i < data.location.monday.length && isClosed; i++)
第2版:因为当它是1800时,循环将首先检查:{"kai":700,"guan":1400},条件不会返回true,因为1800不在700和1400之间。在第二次尝试{"开":1700,"关":2100}条件将返回true,因为1800在1700和2100之间。所以我建议用这种方式编辑你的剧本。这是你想要实现的吗?
var isClosed = true;
xr_mon= data.location.monday[0];
xr_mon2= data.location.monday[1];
if ((locTime >= xr_mon.kai && locTime < xr_mon.guan) || (locTime >= xr_mon2.kai && locTime < xr_mon2.guan) ){
console.log("location is open!");
isClosed = false;
$('.xr').show("drop", { direction: "up" }, 400);
}
else {
console.log("location is closed");
$('.xr').hide("drop", {direction: "down"}, 800);
}
相关文章:
- 将函数的上下文应用于javascript变量
- 无法导出函数expressjs/requestjs中的变量
- 函数参数中的数据与指定变量之间的任何性能差异
- 将PHP变量传递给jQuery时遇到问题
- 如何通过ajax刷新JSF填充的javascript变量
- 参数变量出现ngTable指令问题
- 通过javascript重定向html传递php变量
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 全局变量和全局对象的属性之间有什么区别吗
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- 值对象在某个变量发生更改后发生更改
- Javascript变量赋值|
- AngularJS-在JSON选择器中使用变量名
- Javascript计数器变量未显示正确的值
- delete关键字在全局变量上的不同行为
- 递增 PHP 变量在 JSCRIPT 文档工作方面
- 在速度方面,使用变量而不是重新定义jquery对象更好吗
- 在for循环数组检查和JSON变量方面遇到问题
- php和JavaScript中的变量.我需要基本理解方面的帮助
- 在内存使用和效率方面,变量和WITH关键字哪个更好