分类 JQuery 下的文章

小爱课程表 新版正方教务系统通用代码

Snipaste_2020-06-10_20-10-18.png
Snipaste_2020-06-10_20-10-18.png

代码

function scheduleHtmlParser(html) {
    //除函数名外都可编辑
    //传入的参数为上一步函数获取到的html
    //可使用正则匹配
    //可使用解析dom匹配,工具内置了$,跟jquery使用方法一样,直接用就可以了,参考:https://juejin.im/post/5ea131f76fb9a03c8122d6b9
    //以下为示例,您可以完全重写或在此基础上更改

    let course = $('#table1 .timetable_con');

    var courseInfos = [];//课程信息
    var sectionsTimes = [];//节次信息,非必须

    for (let i = 0; i < course.length; i++) {
        var _name = $(course[i]).find("p[class=title]").text();//课程名
        var _day_session = $(course[i]).parent().attr("id").split("-");
        var day = _day_session[0];//星期几的课
        var _postion = '',//上课地点
            _teacher = '',//教师
            sectionsTmp = [],//临时储存节次 array
            weeksTmp = [];////临时存储周次  array

        $(course[i]).find("p").each(function (index, item) {
            var _typeName = $(this).children("span").attr("data-original-title");//类别名。节/周、上课地点、教师、教学班名...
            if(_typeName !== undefined) _typeName = _typeName.trim();

            var _text = $(this).text().trim();

            if (_typeName === '节/周') {
                var _length = _text.match(/\((.+?)节\)/);

                //判断是否存在节次
                if (_length === null) {
                    return 0;//不存在就跳出本次循环
                }

                //当前课程节次信息
                sectionsTmp = function () {
                    let num = _length[1].split("-");
                    
                    let tmp = [];
                    for (let i = parseInt(num[0]); i <= parseInt(num[1]); i++) {
                        tmp.push({
                            section: parseInt(i)
                        });
                    }

                    return tmp;
                }();

                //临时存储周次
                weeksTmp = function () {
                    var tmp = [],
                        _week = _text.replace(_length[0], "").split("周")[0],//周次
                        _weekRange = _week.split("-"),
                        _weeekType = -1;//-1:不分单双周,1:单周,0:双周

                    if (_text.indexOf("(单)") !== -1) {
                        _weeekType = 1;
                    } else if (_text.indexOf("(双)") !== -1) {
                        _weeekType = 0;
                    }

                    for (let i = parseInt(_weekRange[0].trim()); i <= parseInt(_weekRange[1]); i++) {
                        if (i % 2 === _weeekType && _weeekType !== -1) tmp.push(i);//特殊单双周压入
                        if (_weeekType === -1) tmp.push(i);//部分单双周压入
                    }

                    return tmp;
                }();
            } else if (_typeName === '上课地点') {
                _position = _text;
            } else if (_typeName === '教师') {
                _teacher = _text;
            }
        });

        courseInfos.push({
            name: _name,//课程名
            position: _position,//位置
            teacher: _teacher,//教师名
            day: day,
            weeks: weeksTmp,//哪几周有课
            sections: sectionsTmp,//哪几节次
        })
    }

    console.info(courseInfos);

    return {
        courseInfos: courseInfos
    }
}

jQuery/原生JS 监听图片加载完成/加载失败 事件

假设有以下 HTML 代码

<img id="img" src="./logo.png" alt="这是图片简介"/>

jQuery 版:

jQuery 监听图片加载完成事件

$("#img").on("load", function(){
    console.log("图片加载完成了");
});

jQuery 监听图片加载失败事件

$("#img").on("error", function(){
    console.log("图片加载失败");
});

jQuery 监听图片加载完成/加载失败事件 简化版代码

$("#img").on("load", function(){
    console.log("图片加载完成了");
}).on("error", function(){
    console.log("图片加载失败");
});

原生 JavaScript 版:

var img_selector = document.querySelector("img");//查询 id 为 img 的节点

//监听图片加载完成事件
img_selector.addEventListener("load", function(){
    console.log("图片加载完成事件");
});

//监听图片加载失败事件
img_selector.addEventListener("error", function(){
    console.log("图片加载失败事件");
});

简化版代码

var img_selector = document.querySelector("img");//查询 id 为 img 的节点

//监听图片加载完成事件
img_selector.onload = function(){
    console.log("图片加载完成事件");
};

//监听图片加载失败事件
img_selector.onerror = function(){
    console.log("图片加载失败事件");
};

一言,随机一句话调用方法

背景

这篇文章我是转载的;

前几天逛博客的时候发现的一个新玩意儿,名叫一言,之前的域名http://hitokoto.us/已经停止服务很长一段时间了。

所有今天把他加在博客的副标题了,感觉挺不错的。响应速度挺快的,而且还免费。(良心,赞一个)

好了,说了这么多。什么是一言呢?

动漫也好、小说也好、网络也好,不论在哪里,我们总会看到有那么一两个句子能穿透你的心。我们把这些句子汇聚起来,形成一言网络,以传递更多的感动。如果可以,我们希望我们没有停止服务的那一天。简单来说,一言指的就是一句话,可以是动漫中的台词,也可以是网络上的各种小段子。或是感动,或是开心,有或是单纯的回忆。来到这里,留下你所喜欢的那一句句话,与大家分享,这就是一言存在的目的。

——摘自一言

嗯,说简单点就是获取随机一句话。

下面就是本站调用一言接口的效果图:

本站使用的一言(看不到图片请刷新下本页面)

Demo(HTTP)

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
<div class="hitokoto">Test</div>

<!-- 首先引入JQ -->
<script src="http://cdn.myiooc.cn/jquery.min.js"></script>
<script>
    $.post("http://api.hitokoto.cn/",null,function(e){
        // $('修改的class名称')
        // e是json数据,里边还有其他内容可以看看文档
        $('.hitokoto').html(e.hitokoto+" —— <strong>"+e.from+"</strong>")}
    ,'JSON');
</script>
</body>
</html>

调用接口:

调用参数:

  • c:可选,有参数时返回对应分类,无参数时返回全部分类,参数:a – Anime - 动画,b-Comic – 漫画,c – Game – 游戏,d – Novel – 小说,e – Myself – 原创,f – Internet – 来自网络,g – Other – 其他
  • text:可选,有参数时输出纯文本,无参数返回全部JSON数据

最后是返回值,默认返回JSON数据。

返回参数:

  • id,本条一言的id值
  • hitokoto,一言正文
  • type,返回类型,取决于调用参数
  • from,一言出处
  • creator,一言创建者
  • created_at,创建时间

最后的最后,你还可以到一言发布你的一言,把你的心声分享给大家。

百度收录查询API开放[个人写的],附JQuery调用方法

背景

这篇文章我是转载的;

进过我博客的朋友应该都记得,站点首页响应速度出奇的慢,然而还找不到原因。(好气啊)

经过@调调的提醒,突然就想起来可能是百度收录的锅(还是腾讯云的锅?)。

因为写在module.php每次输出文章都会在线查询一次,去掉试试?<( ̄︶ ̄)>

果然去掉百度收录后博客首页是秒开呀。但是想想不要百度收录查询感觉怪怪的。

话说怎么我博客一篇文章都还没被收录?好吧,偏题了。(会SEO的朋友私密我,谢谢)

所以便写了这么一个接口,同时也开通的SSL。

当页面结束后再利用AJax进行调用,响应速度不用说。(终于找到背锅的了(~ ̄▽ ̄)~)

调用地址

  • https://api.isecret.vip/api?type=baidu&url=http://blog.myiooc.cn

调用参数

  • type:必填,现在还只有baidu这一个参数,后边如果还写什么接口可能还会有更多
  • url:必填,填写需要查询的URL地址

返回格式

参数完整的话会返回一个JSON数据,格式:{"url":"http:\/\/baidu.com","status":1}

返回参数

  • url:即你查询的URL地址,
  • status:返回值只有0和1,0为未收录,1为已收录

调用实例

<script>
var urlArr = $('.api'); //需要先在HTML代码中给接口留一个位置并绑定固定的class
$(urlArr).each(function(i) {
var url = "https://api.isecret.vip/api?type=baidu&url="+urlArr[i].title; //这里title值存放查询链接
$.post(url,null,function(e){
if(e.status == 0){
$(urlArr[i]).html('百度未收录');
}else if(e.status == 1){
$(urlArr[i]).html('百度已收录');
}
},'JSON');
});
</script>

特别鸣谢

感谢Mrxn's Blog