JQuery JavaScript常用API整理(前端入门必学)

简介: JQuery JavaScript常用API整理(前端入门必学)

现在MVVM框架逐渐占据了主要市场,很多老项目也逐渐的从jQuery转向了MVVM架构!JQuery还有必要学吗? 我的答案是jQuery必须学! JavaScript是基础,JQuery能让DOM操作更方便,哪怕用vue react当操作dom的时候 还是离不开的,只是说可以不用学的那么深。


下面就整理一下我之前工作中用到的一些API

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/jquery-3.5.1.min.js"></script>
</head>
<style>
    .clr_red {
        background-color: red;
    }
</style>
<body>
    <p class="p_clazz" id="p_text"></p>
    <div>
        <div id="div_1">
            000
            <p>11</p>
            <div>
                <p>222</p>
            </div>
            <p>333</p>
        </div>
    </div>
    <button id="button_1" type="button">button1</button>
    <button id="button_2" type="button">button2</button>
    <button id="button_3" type="button">点我触发隐藏</button>
    <button id="button_4" type="button" onclick="btn_click(id)">点我传id</button>
    <div id="div_click_hide">hello world</div>
    <div id="div_dynamic" style="background-color: red; width: 10px;height: 10px;">
    </div>
    <input id="input_1">
</body>
</html>


以这个html为例


1、 获取文件名


function fun_get_filename() {
        var a = "http://www.jb51.net/html/images/logo.gif";
        var b = a.split("/");
        // 截取路径/后最后一个字符串并去除后缀名
        var c = b.slice(b.length - 1, b.length).toString(String).split(".");
        alert("取得的文件名是:" + c.slice(0, 1));
    }


2、判断元素是否包含某个样式


function fun_hasclass() {
        var hasClass = $("#p_text").hasClass("p_clazz"); //返回布尔值
        alert(hasClass)
    }


3、判断元素是否是某个标签


fun_is_element('p');
 function fun_is_element(elementName) {
        return $("#p_text").is(elementName);
    }


4、jquery find end


//用于在元素内查找元素
 function fun_find_and() {
        //$("#div_1").find("p").addClass("clr_red"); //把div的后代元素(后代是子、孙、曾孙,依此类推)添加class
        $("#div_1").find("p").end().addClass("clr_red");  //.end();  //当前结果集的上一个结果集即div_1
    }


5、Math函数


function fun_math() {
        console.log(Math.PI); //圆周率π
        console.log(Math.max(10, 13, 12)); //返回一组数据中最大值
        console.log(Math.min(10, 13, 12)); //返回一组数据中最小值
        console.log(Math.round(12.4)) //四舍五入
        console.log(Math.ceil(12.5)); //向上舍入
        console.log(Math.floor(12.5)); // 向下舍入
        console.log(Math.random()); //获取0-1之间的随机数不包括0和1
    }


6、.click和.on的区别


$(document).on('click', '#button_2', function () {
    //on方法包含很多事件,点击,双击等等事件。和$().click()的用法一样,最大的区别即优点是如果动态创建的元素在该选择器选中范围内是能触发回调函数。
    alert("别点我2");
});
$("#button_1").click(() => {
    //当选中的选择器被点击时触发回调函数fn。只针对与页面已存在的选择器。
    //语法:$(选择器).click(fn)
    alert("别点我");
});


7、定时函数改变div宽度


function fun_change_div_width() {
        setInterval(() => {
            //效果和进度条一样
            $("#div_dynamic").width($("#div_dynamic").width() + 10);
        }, 1000);
    }


8、查找集合中最大的属性值


function fun_list_max() {
        var list = [{ count: 3 }, { count: 15 }, { count: 1 }, { count: -5 }, { count: 10 }]
        var maxObj = Math.max.apply(Math, list.map(function (o) { return o.count }));
        alert(JSON.stringify(maxObj)) //15
    }


9、删除对象属性


function del_obj_property() {
        var obj = {
            name: "小丽",
            age: 15,
            address: "北京人"
        };
        console.log(obj);
        delete obj.address;
        console.log(obj);
    }


10、for in 和for of


for in 循环,不仅可以循环对象,还可以遍历数组, in 为下标值

for of 循环 const item of list 获取的为集合中的每个对象

var list = [{ a: 1, b: 1 }, { a: 2, b: 2 }];
    var obj = { a: 1, b: 1 };
    for (let i in list) {
        console.log(list[i]);
    }
    for (let k in obj) {
        console.log('key:' + k + ',value:' + obj[k]);
    }
    for (let i of list) {
        console.log(i);
    }


11、获取指定范围内随机数


fun_random(1, 10); //取n-m之间的随机整数值
 function fun_random(n, m) {
        for (let i = 0; i < 100; i++) {
            let num = Math.random() * (m - n) + n;
            console.log(Math.floor(num)); //包括n,不包括m
        }
    }


12、删除集合中元素


function fun_list_remove() {
        var list = [];
        for (let i = 0; i < 100; i++) {
            list.push(i);
        }
        console.log(list);
        for (var i = list.length; i >= 0; i--) {
            // 一定要采用倒循环删除,正循环的话每次删除后要给下标-1,否则会存在漏删
            if (list[i] < 10) {
                list.splice(i, 1);
            }
        }
        // 有bug的写法
        // for (let i = 0; i < list.length; i++) {
        //     if (list[i] < 10) {
        //         list.splice(i, 1);
        //     }
        // }
        console.log(list);
    }


13、sessionStorage


//读写session
sessionStorage.setItem('key', sessionData);
sessionStorage.getItem('key')


14、localStorage


/*localStorage本地存储、保存数据:localStorage.setItem(key,value);
读取数据:localStorage.getItem(key);
删除单个数据:localStorage.removeItem(key);
删除所有数据:localStorage.clear();
得到某个索引的key:localStorage.key(index);*/


15、获取url参数


//编码解码 escape()   unescape(),针对特殊字符使用encodeURI    decodeURI
 function getParams(key) {
        //访问http://127.0.0.1:5500/js_example/index.html?name=%E5%BC%A0%E4%B8%89&age=15
        var url = location.search.replace(/^\?/, '').split('&');
        var paramsObj = {};
        for (var i = 0, iLen = url.length; i < iLen; i++) {
            var param = url[i].split('=');
            paramsObj[param[0]] = param[1];
        }
        if (key) {
            return paramsObj[key] || '';
        }
        return paramsObj;
    }


16、回车换行和发送


//回车发送、(ctrl+回车是换行)
    $("#Getevent").keydown(function (event) {
        if (e.keyCode == 13 && e.ctrlKey) {
            // 这里实现换行
            document.getElementById("a").value += "\n";
        } else if (e.keyCode == 13) {
            // 避免回车键换行
            e.preventDefault();
            // 下面写你的发送消息的代码
        }
    });


17、获取时间


//格式为:2022-07-07 13:05:07
    var nowDate = new Date();
    var nowDateStr = nowDate.getFullYear() + '-' + getDate(nowDate.getMonth() + 1) + '-' + getDate(nowDate.getDate()) + ' ' + getDate(nowDate.getHours()) + ':' + getDate(nowDate.getMinutes()) + ':' + getDate(nowDate.getSeconds());
    function getDate(number) {
        number = number + '';
        if (number.length <= 1) {
            return '0' + number;
        } else {
            return number;
        }
    }
    //一行带过:new Date(+new Date()+8*3600*1000).toISOString().replace(/T/g,' ').replace(/\.[\d]{3}Z/,'')


18、大小写转换


let str = "XafgGkL";
console.log(str.toUpperCase()); //字母转大写
console.log(str.toLowerCase()); //字母转小写


19、数组常用方法


/*
    数组: 删除最后一个元素 .pop()  
        .slice(begin,end); 删除从begin开始的元素不包括end;返回被删除的元素,不改变原来的数组
        .concat(arr)  合并两个数组,返回一个新数组,不改变原来的数组
        .join()  默认,来分割数组中的每个元素,返回一个字符串
        .forEach(function(item){})  遍历数组中的每个元素
        .filter(p=>p.id==1 )  筛选元素
        */


20、++和–在左边和右边的区别


++ -- 操作符在变量前边,先进行自身运算,在进行其他运算

操作符在变量后边,先进行其他运算,在进行自身运算


21、string常用方法


/*
string: indexOf('b') 返回第一次出现的位置
        .substr(start,length)从下标为2的位置截取length个 
        .replace(regex||str,newstr||function)  
        .trim()   去除左右空格  
*/


22、选中下拉


$("#sel option[value='xx']").prop("selected",selected);


23、监听元素回车事件


$("#input_1").keyup(function () {
        if (event.keyCode == 13) {
            //这里写你要执行的事件;
            alert("回车了")
        }
    });


24、代码控制元素的显示和隐藏


$(document).on('click', '#button_3', function () {
        $('#div_click_hide').css("display", "none"); //隐藏
        // $('#div_click_hide').css("display", "none");//显示
        //也可以 .remove(); 直接删除元素
    });


25、通过点击事件传递属性


function btn_click(id) {
        console.log(id); //button_4
    }


26、find和filter


ES6 find() 方法返回通过测试函数的第一个元素的值。如果没有值满足测试函数,则返回 undefined。

filter() 方法创建一个包含所有通过测试函数的元素的新数组。如果没有元素满足测试函数,则返回一个空数组。

function fun_find_filter() {
        var list = [{ id: '00001' }, { id: '00002' },{id: '00002'}];
        var nub = list.find(nub => nub.id == "00002");
        console.log(nub);
        var nub1 = list.filter(nub => nub.id == "00002");
        console.log(nub1);
    }


27、map方法


返回集合中某个属性值的集合

function fun_map(){
        var list = [{ id: '00001' }, { id: '00002' },{id: '00002'}];
        console.log(list.map(p=>p.id));
    }


28、Object


var obj = {a:1};
$.isPlainObject(obj); //返回如果指定的参数是纯粹的对象,则返回true,否则返回false。
//设置对象的值不可改变
function fun_defineProperty(){
        Object.defineProperty(obj, "a",{writable:false});//writable:false不能改变属性的值
        obj.a = 2;
        console.log(obj);
    } 
//遍历对象属性
Object.keys(obj).forEach(key => {
    console.log(obj[key]);
});
obj.hasOwnProperty("a"); //判断自身属性是否存在


29、获取元素的属性


常用的有attr和prop,当然还有data


对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。快速,准确。

对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法

如果绑定值是采用data-开头,也可以使用.dataset和.data

$("#chke1").prop("checked"); //这是元素固有属性
$("#chke1").attr("userId"); //这是自定义属性
//元素绑定属性: data-id="xxx"
console.log(element.dataset.id);
console.log(element.data('id'));


一些小常识


js中’', 0, 都为false

&& ||同时存在的话,先运算&&在运算||

ajax:添加 contentType:“application/json“之后,向后台发送数据的格式必须为json字符串,不添加 的时候可以向后台发送json对象形式。

button,<input type=button>按钮区别

当在IE浏览器下面时,button标签按钮,input标签type属性为button的按钮是一样的功能,不会对表单进行任何操作。
但是在W3C浏览器,如Firefox下就需要注意了,button标签按钮会提交表单,而input标签type属性为button不会对表单进行任何操作。
一般写<button id="button_1" type="button">button1</button> 不是表单提交的话,最好把type属性加上


eval() 函数计算 JavaScript 字符串,并把它作为脚本代码来执行。 如果是json格式 key不带双引号,则会转换为对象

相关文章
|
28天前
|
JavaScript 前端开发 程序员
前端原生Js批量修改页面元素属性的2个方法
原生 Js 的 getElementsByClassName 和 querySelectorAll 都能获取批量的页面元素,但是它们之间有些细微的差别,稍不注意,就很容易弄错!
|
25天前
|
JavaScript 前端开发 Java
springboot解决js前端跨域问题,javascript跨域问题解决
本文介绍了如何在Spring Boot项目中编写Filter过滤器以处理跨域问题,并通过一个示例展示了使用JavaScript进行跨域请求的方法。首先,在Spring Boot应用中添加一个实现了`Filter`接口的类,设置响应头允许所有来源的跨域请求。接着,通过一个简单的HTML页面和jQuery发送AJAX请求到指定URL,验证跨域请求是否成功。文中还提供了请求成功的响应数据样例及请求效果截图。
springboot解决js前端跨域问题,javascript跨域问题解决
|
23天前
|
JavaScript 前端开发
js+jquery实现贪吃蛇经典小游戏
本项目采用HTML、CSS、JavaScript和jQuery技术,无需游戏框架支持。通过下载项目文件至本地,双击index.html即可启动贪吃蛇游戏。游戏界面简洁,支持方向键控制蛇移动,空格键实现游戏暂停与恢复功能。
53 14
|
27天前
|
缓存 JavaScript 前端开发
JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用
本文深入讲解了 JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用。
40 5
|
25天前
|
缓存 前端开发 JavaScript
JavaScript前端路由的实现原理及其在单页应用中的重要性,涵盖前端路由概念、基本原理、常见实现方式
本文深入解析了JavaScript前端路由的实现原理及其在单页应用中的重要性,涵盖前端路由概念、基本原理、常见实现方式(Hash路由和History路由)、优点及挑战,并通过实际案例分析,帮助开发者更好地理解和应用这一关键技术,提升用户体验。
63 1
|
29天前
|
JSON 前端开发 JavaScript
聊聊 Go 语言中的 JSON 序列化与 js 前端交互类型失真问题
在Web开发中,后端与前端的数据交换常使用JSON格式,但JavaScript的数字类型仅能安全处理-2^53到2^53间的整数,超出此范围会导致精度丢失。本文通过Go语言的`encoding/json`包,介绍如何通过将大整数以字符串形式序列化和反序列化,有效解决这一问题,确保前后端数据交换的准确性。
35 4
|
1月前
|
资源调度 前端开发 JavaScript
vite3+vue3 实现前端部署加密混淆 javascript-obfuscator
【11月更文挑战第10天】本文介绍了在 Vite 3 + Vue 3 项目中使用 `javascript-obfuscator` 实现前端代码加密混淆的详细步骤,包括安装依赖、创建混淆脚本、修改 `package.json` 脚本命令、构建项目并执行混淆,以及在 HTML 文件中引用混淆后的文件。通过这些步骤,可以有效提高代码的安全性。
|
1月前
|
编解码 前端开发 JavaScript
从入门到精通:揭秘前端开发中那些不为人知的优化秘籍!
前端开发是充满无限可能的领域,从初学者到资深专家,每个人都追求更快、更稳定、更用户体验友好的网页。本文介绍了四大优化秘籍:1. HTML的精简与语义化;2. CSS的优雅与高效;3. JavaScript的精简与异步加载;4. 图片与资源的优化。通过这些方法,可以显著提升网页性能和用户体验。
20 3
|
1月前
|
设计模式 前端开发 JavaScript
揭秘!前端大牛们如何巧妙利用JavaScript,打造智能交互体验!
【10月更文挑战第30天】前端开发领域充满了无限可能与创意,JavaScript作为核心语言,凭借强大的功能和灵活性,成为打造智能交互体验的重要工具。本文介绍前端大牛如何利用JavaScript实现平滑滚动、复杂动画、实时数据更新和智能表单验证等效果,展示了JavaScript的多样性和强大能力。
51 4
|
1月前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
111 1