javascript - 如果没有找到任何项目,jQuery 执行 else 语句

标签 javascript json html

当页面加载时(2017 年 2 月 6 日),一切都很棒。但是,如果用户使用输入(日期选择器)将日期更改为 2/13/2017。我得到“无时间表”。不过我知道有一个有效的日期,因为 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;
        }
    });

我的 JS 文件,其中包含 JSON 对象

var sam.smith = [
    {
        "name": "Sam Smith",
        "date": "02/6/2017",
        "title": "Lead Developer",
        "mondayAM": "Ex. Campus AM",
        "mondayPM": "Main Campus PM",
        "tuesdayAM": "Main Campus AM",
        "tuesdayPM": "Main Campus PM",
        "wednesdayAM": "Main Campus AM",
        "wednesdayPM": "Main Campus PM",
        "thursdayAM": "Main Campus AM",
        "thursdayPM": "Main Campus PM",
        "fridayAM": "Main Campus AM",
        "fridayPM": "Main Campus PM",
        "saturdayAM": "Main Campus AM",
        "saturdayPM": "Main Campus PM"
    },
    {
        "name": "Sam Smith",
        "date": "02/13/2017",
        "title": "Lead Developer",
        "mondayAM": "Main Campus AM",
        "mondayPM": "Main Campus PM",
        "tuesdayAM": "Main Campus AM",
        "tuesdayPM": "Main Campus PM",
        "wednesdayAM": "Main Campus AM",
        "wednesdayPM": "Main Campus PM",
        "thursdayAM": "Main Campus AM",
        "thursdayPM": "Main Campus PM",
        "fridayAM": "Main Campus AM",
        "fridayPM": "Main Campus PM",
        "saturdayAM": "Main Campus AM",
        "saturdayPM": "Main Campus PM"
    }
];

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>

最佳答案

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

关于javascript - 如果没有找到任何项目,jQuery 执行 else 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42178071/

相关文章:

javascript - Form.onsubmit 不起作用

php - json 列与多列

c# - 自定义授权属性仅适用于本地主机

javascript - 无法在 javascript slider 中添加指向图像的单独链接

javascript - 如何正确切换类(class)?

javascript - 单击时 Angular 突出显示整个单词并在控制台中显示

javascript - 'require(' ./app/routes.js')(app);' 是什么意思在此 Node 服务器示例中是什么意思?

javascript - 使用纯 CSS 或原生 JS 使图标插入 via::after 可操作

javascript - Jquery Javascript 对象 - 将某些值与另一个类似对象进行比较并替换

html,强制元素彼此相邻,即使被滚动父元素切断