Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果找不到任何项,jQuery将执行else语句_Javascript_Json_Html - Fatal编程技术网

Javascript 如果找不到任何项,jQuery将执行else语句

Javascript 如果找不到任何项,jQuery将执行else语句,javascript,json,html,Javascript,Json,Html,当页面加载时(2017年2月6日),一切都很好。但是,如果用户使用输入(日期选择器)将日期更改为2017年2月13日。我得到“没有时间表”。但是我知道有一个有效的日期,因为JSON文件有一个该日期的条目 我不明白为什么我要执行“else”部分。我试图表明,如果JSON文件没有条目,则没有设置时间表 $.each(sam.smith, function(i, v) { console.log("value of i is " + i + " and the value of v i

当页面加载时(2017年2月6日),一切都很好。但是,如果用户使用输入(日期选择器)将日期更改为2017年2月13日。我得到“没有时间表”。但是我知道有一个有效的日期,因为JSON文件有一个该日期的条目

我不明白为什么我要执行“else”部分。我试图表明,如果JSON文件没有条目,则没有设置时间表

$.each(sam.smith, function(i, v) {
        console.log("value of i is " + i + " and the value of v is " + v.date);
        if(v.date == theSelectedDate)
        {
            $('.sam.smithName').html(v.name + "<br>");
            $('.sam.smithTitle').html(v.title);
            $('.sam.smithMondaySchedule').html(v.mondayAM + "<br>" + v.mondayPM);
            $('.sam.smithTuesdaySchedule').html(v.tuesdayAM + "<br>" + v.tuesdayPM);
            $('.sam.smithWednesdaySchedule').html(v.wednesdayAM + "<br>" + v.wednesdayPM);
            $('.sam.smithThursdaySchedule').html(v.thursdayAM + "<br>" + v.thursdayPM);
            $('.sam.smithFridaySchedule').html(v.fridayAM + "<br>" + v.fridayPM);
            return false;
        } else {
            v.mondayAM = "No Schedule";
            v.mondayPM = "No Schedule";
            v.tuesdayAM = "No Schedule"
            v.tuesdayPM = "No Schedule";
            v.wednesdayAM = "No Schedule";
            v.wednesdayPM = "No Schedule";
            v.thursdayAM = "No Schedule";
            v.thursdayPM = "No Schedule";
            v.fridayAM = "No Schedule";
            v.fridayPM = "No Schedule";
            $('.sam.smithName').html(v.name + "<br>");
            $('.sam.smithTitle').html(v.title);
            $('.sam.smithMondaySchedule').html(v.mondayAM + "<br>" + v.mondayPM);
            $('.sam.smithTuesdaySchedule').html(v.tuesdayAM + "<br>" + v.tuesdayPM);
            $('.sam.smithWednesdaySchedule').html(v.wednesdayAM + "<br>" + v.wednesdayPM);
            $('.sam.smithThursdaySchedule').html(v.thursdayAM + "<br>" + v.thursdayPM);
            $('.sam.smithFridaySchedule').html(v.fridayAM + "<br>" + v.fridayPM);
            return false;
        }
    });
HTML文件片段

        <input type="date" id="date" step="7" min="2017-02-06" />

以及影响表格的部分

        <tr>
            <td class="lalign"><span class="sam.smithName"></span><span class="sam.smithTitle" style="color: navy;text-align: center;"></span></td>
            <td><span class="sam.smithMondaySchedule"></span></td>
            <td><span class="sam.smithTuesdaySchedule"></span></td>
            <td><span class="sam.smithWednesdaySchedule"></span></td>
            <td><span class="sam.smithThursdaySchedule"></span></td>
            <td><span class="sam.smithFridaySchedule"></span></td>              
        </tr>

请检查所选日期的格式。如果使用日期输入的
值设置,则条件
v.date==所选日期
将失败

v.date
的格式为mm/dd/yyyy,但
所选日期的格式为yyyy-mm-dd

JSFiddle:

也不要设置
v
的属性,因为这会导致数据丢失

v.mondayAM = "No Schedule";
v.mondayPM = "No Schedule";
v.tuesdayAM = "No Schedule"
v.tuesdayPM = "No Schedule";
v.wednesdayAM = "No Schedule";
v.wednesdayPM = "No Schedule";
v.thursdayAM = "No Schedule";
v.thursdayPM = "No Schedule";
v.fridayAM = "No Schedule";
v.fridayPM = "No Schedule";
相反,您可以为此保留一个变量,如下所示

var noSchedule = "No Schedule";
$.each(sam.smith, function(i, v) {
  console.log("value of i is " + i + " and the value of v is " + v.date);
  if (v.date == theSelectedDate) {
    $('.sam.smithName').html(v.name + "<br>");
    $('.sam.smithTitle').html(v.title);
    $('.sam.smithMondaySchedule').html(v.mondayAM + "<br>" + v.mondayPM);
    $('.sam.smithTuesdaySchedule').html(v.tuesdayAM + "<br>" + v.tuesdayPM);
    $('.sam.smithWednesdaySchedule').html(v.wednesdayAM + "<br>" + v.wednesdayPM);
    $('.sam.smithThursdaySchedule').html(v.thursdayAM + "<br>" + v.thursdayPM);
    $('.sam.smithFridaySchedule').html(v.fridayAM + "<br>" + v.fridayPM);
  } else {
    $('.sam.smithName').html(v.name + "<br>");
    $('.sam.smithTitle').html(v.title);
    $('.sam.smithMondaySchedule').html(noSchedule + "<br>" + noSchedule);
    $('.sam.smithTuesdaySchedule').html(noSchedule + "<br>" + noSchedule);
    $('.sam.smithWednesdaySchedule').html(noSchedule + "<br>" + noSchedule);
    $('.sam.smithThursdaySchedule').html(noSchedule + "<br>" + noSchedule);
    $('.sam.smithFridaySchedule').html(noSchedule + "<br>" + noSchedule);
  }
});
var noSchedule=“无计划”;
$。每个(sam.smith,函数(i,v){
console.log(“i的值为“+i+”,v的值为“+v.date”);
如果(v.date==所选日期){
$('.sam.smithName').html(v.name+“
”); $('.sam.smithTitle').html(v.title); $('.sam.smithMondaySchedule').html(v.mondayAM+“
”+v.mondayPM); $('.sam.smithTuesdaySchedule').html(v.tuesdayAM+“
”+v.tuesdayPM); $('sam.smithWednesdaySchedule').html(v.wednesdayAM+“
”+v.wednesdayPM); $('.sam.smithThursdaySchedule').html(v.thursdayAM+“
”+v.thursdayPM); $('sam.smithFridaySchedule').html(v.fridayAM+“
”+v.fridayPM); }否则{ $('.sam.smithName').html(v.name+“
”); $('.sam.smithTitle').html(v.title); $('.sam.smithMondaySchedule').html(noSchedule+“
”+noSchedule); $('.sam.smithTuesdaySchedule').html(noSchedule+“
”+noSchedule); $('.sam.smithWednesdaySchedule').html(noSchedule+“
”+noSchedule); $('.sam.smithThursdaySchedule').html(noSchedule+“
”+noSchedule); $('.sam.smithFridaySchedule').html(noSchedule+“
”+noSchedule); } });
请检查所选日期的格式。如果使用日期输入的
值设置,则条件
v.date==所选日期
将失败

v.date
的格式为mm/dd/yyyy,但
所选日期的格式为yyyy-mm-dd

JSFiddle:

也不要设置
v
的属性,因为这会导致数据丢失

v.mondayAM = "No Schedule";
v.mondayPM = "No Schedule";
v.tuesdayAM = "No Schedule"
v.tuesdayPM = "No Schedule";
v.wednesdayAM = "No Schedule";
v.wednesdayPM = "No Schedule";
v.thursdayAM = "No Schedule";
v.thursdayPM = "No Schedule";
v.fridayAM = "No Schedule";
v.fridayPM = "No Schedule";
相反,您可以为此保留一个变量,如下所示

var noSchedule = "No Schedule";
$.each(sam.smith, function(i, v) {
  console.log("value of i is " + i + " and the value of v is " + v.date);
  if (v.date == theSelectedDate) {
    $('.sam.smithName').html(v.name + "<br>");
    $('.sam.smithTitle').html(v.title);
    $('.sam.smithMondaySchedule').html(v.mondayAM + "<br>" + v.mondayPM);
    $('.sam.smithTuesdaySchedule').html(v.tuesdayAM + "<br>" + v.tuesdayPM);
    $('.sam.smithWednesdaySchedule').html(v.wednesdayAM + "<br>" + v.wednesdayPM);
    $('.sam.smithThursdaySchedule').html(v.thursdayAM + "<br>" + v.thursdayPM);
    $('.sam.smithFridaySchedule').html(v.fridayAM + "<br>" + v.fridayPM);
  } else {
    $('.sam.smithName').html(v.name + "<br>");
    $('.sam.smithTitle').html(v.title);
    $('.sam.smithMondaySchedule').html(noSchedule + "<br>" + noSchedule);
    $('.sam.smithTuesdaySchedule').html(noSchedule + "<br>" + noSchedule);
    $('.sam.smithWednesdaySchedule').html(noSchedule + "<br>" + noSchedule);
    $('.sam.smithThursdaySchedule').html(noSchedule + "<br>" + noSchedule);
    $('.sam.smithFridaySchedule').html(noSchedule + "<br>" + noSchedule);
  }
});
var noSchedule=“无计划”;
$。每个(sam.smith,函数(i,v){
console.log(“i的值为“+i+”,v的值为“+v.date”);
如果(v.date==所选日期){
$('.sam.smithName').html(v.name+“
”); $('.sam.smithTitle').html(v.title); $('.sam.smithMondaySchedule').html(v.mondayAM+“
”+v.mondayPM); $('.sam.smithTuesdaySchedule').html(v.tuesdayAM+“
”+v.tuesdayPM); $('sam.smithWednesdaySchedule').html(v.wednesdayAM+“
”+v.wednesdayPM); $('.sam.smithThursdaySchedule').html(v.thursdayAM+“
”+v.thursdayPM); $('sam.smithFridaySchedule').html(v.fridayAM+“
”+v.fridayPM); }否则{ $('.sam.smithName').html(v.name+“
”); $('.sam.smithTitle').html(v.title); $('.sam.smithMondaySchedule').html(noSchedule+“
”+noSchedule); $('.sam.smithTuesdaySchedule').html(noSchedule+“
”+noSchedule); $('.sam.smithWednesdaySchedule').html(noSchedule+“
”+noSchedule); $('.sam.smithThursdaySchedule').html(noSchedule+“
”+noSchedule); $('.sam.smithFridaySchedule').html(noSchedule+“
”+noSchedule); } });
每次用户向您发送数据时,您的函数都会从JSON文件中的第一个元素开始迭代,这就是为什么2017年2月6日会过去(这是第一个日期),但当您的v.date发生变化时,会从JSON文件中的第一个元素开始迭代,其中日期是2017年2月6日。您需要完全检查JSON文件,然后转到else块。

每次用户向您发送数据时,您的函数从JSON文件中的第一个元素开始迭代,这就是为什么2017年2月6日过去了(这是第一个日期),但当您的v.date更改时,从JSON文件中的第一个元素开始迭代,其中日期是2017年2月6日。您需要完全检查JSON文件,然后转到else块。

首先:带点的类名<代码>:-O
我知道您没有使用CSS,但它完全不正确。我很想知道为什么这对你有用:
$('.sam.smithTuesdaySchedule')
而不是
$('.sam\\.smithTuesdaySchedule')
@MarcosPérezGude我希望我能向你解释一下。我看到一个网站在他们的例子中使用了它,我用它作为模板。我看到了问题,但我不知道如何解决它。看起来我没有解析我的JSON对象。首先:带点的类名<代码>:-O
我知道您没有使用CSS,但它完全不正确。我很想知道为什么这对你有用:
$('.sam.smithTuesdaySchedule')
而不是
$('.sam\\.smithTuesdaySchedule')
@MarcosPérezGude我希望我能向你解释一下。我看到一个网站在他们的例子中使用了它,我用它作为模板。我看到了问题,但我不知道如何解决它。看起来我没有解析JSON对象。我修复了函数中的格式设置。var theSelectedDate=$(“#date”).val();变量部分=所选的日期分割('-');第[2]部分=parseInt(第[2]部分);所选日期=零件[1]+“/”+零件[2]+“/”+零件[0];没有。我的函数中总是有代码来更改日期的格式,但我想我看到了