JavaScript库,编写$()和getElementsByClassName()方法

背景:

JavaScript库是一组预先编写好的JavaScript代码集合,旨在简化常见的网页开发任务。这些库通常包含了许多函数和方法,可以帮助开发人员处理各种任务,比如DOM操作、事件处理、动画效果、AJAX请求等等。使用JavaScript库可以节省开发时间,并提供了一种标准化的方法来解决常见的编程问题。

举个例子,假设你需要在网页中实现一个图片轮播的功能。如果你从头开始编写代码,需要处理图片的切换、定时器的设置、按钮的事件绑定等等,这会耗费大量的时间和精力。但是如果你使用一个现成的JavaScript库,比如jQuery或者React等,你只需要调用库中提供的轮播函数,并按照文档进行简单的配置,就可以快速地实现图片轮播功能,大大提高了开发效率。

总的来说,JavaScript库就像是开发人员的工具箱,提供了各种各样的工具和功能,可以帮助他们更快速、更轻松地构建网页和Web应用。

$()方法:

(function(){//这是一个立即执行函数表达式(Immediately Invoked Function Expression,IIFE)的开始window['IC'] = {};//创建一个空对象IC并将其赋值给全局对象window的属性function $() {//定义一个名为$的函数var elements = [];//创建一个空数组elementsfor(var i = 0; i < arguments.length; i++) {//使用for循环遍历传入的参数数组var element = arguments[i];//获取当前参数并赋值变量elementif(typeof element === 'string') {//检查当前参数是否为字符串类型element = document.getElementById(element);//如果是字符串类型,则将其作为元素的id,并使用document.getElementById方法获取对应元素对象}//结束if语句if (arguments.length === 1) {//检查参数的数量是否为1return element;//如果参数的数量为1,则直接返回获取的元素对象}//结束if语句elements.push(element);//将获取到的元素对象添加到elements中}//结束for循环return elements;//返回获取到的元素数组}//结束$函数的定义window['IC']['$'] = $;//将$函数添加到全局对象IC中function getElementsByClassName() {//定义一个名为getElementsByclassName的函数}//结束getElementsByClassName 函数的定义window['IC']['getElementsByClassName'] = getElementsByClassName;//将getElementsByClasName函数添加到全局对象IC中
})();//结束立即执行函数表达式

getElementsByClassName()方法 

function getElementsByClassName(className, tag) {//定义一个名为getElementsByClassName的函数,它接受两个参数:className和tag  var allTags = document.getElementsByTagName(tag); //获取文档中所有指定标签名的元素集合var matchingElements = []; //创建一个空数组matchingElementsvar regex = new RegExp('(^|\\s)' + className + '(\\s|$)'); //创建一个正则表达式,用于匹配类名是否符合要求for (var i = 0; i < allTags.length; i++) {  //使用for循环遍历所有标签元素。var currentElement = allTags[i];  //获取当前遍历的标签元素if (regex.test(currentElement.className)) {  //检查当前元素的类名是否匹配正则表达式matchingElements.push(currentElement);  //如果匹配,则将元素添加到matchingElements数组中}  //结束if语句}  //结束for循环return matchingElements;  //返回匹配的元素数组
} //结束getElementsByClassName函数的定义
if (!window.IC) {  //结束getElementsByClassName函数的定义window.IC = {};  //如果不存在,则创建一个空对象IC
}//结束if语句
window.IC.getElementsByClassName = getElementsByClassName; //将getElementsByClassName函数添加到全局对象IC中。

HTML调用JS库及结果

调用:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
//文档类型声明(Document Type Declaration,DTD),指示浏览器使用HTML4.01Transitional文档定义来解析页面
<html>
//HTML文档的根元素
<head>
//包含了文档的元数据,比如文档的标题、字符编码等信息
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
//这是一个元标签(meta tag),指定了文档的字符编码为gb2312,以确保浏览器正确地解析和显示页面内容
<title></title>
//定义网页的标题,显示在浏览器的标题栏或标签页上
<script type="text/javascript" src="IC.js"></script>
//引入一个javaScript文件,文件路径IC.js,这个文件可能包含一些JavaScript函数或变量
<script type="text/javascript">
//开始JavaScript代码块
function testClick(){
//定义了一个名为testClick的JavaScript函数,该函数在点击按钮时执行。var testInput =IC.getElementsByClassName("testme","input");//调用了名为IC的JavaScript文件,文件路径为IC.Js,这个文件可能包含一个JavaScript函数或变量for(var i=0;i<testInput.length;i++){//使用for循环遍历testInput数组中的每个元素alert(testInput[i].value);//在每次循环中,没弹出一个警告框,显示当前遍历到的输入框(<input>)的value值}
}
</script>
//结束JavaScript代码块
</head>
//head元素的结束标签
<body>
//HTML文档的主题部分
<input type="text" value="test" class="testme"id="testId"/>
//创建一个文本框输入框,初始值为"test",并且拥有类名为"testme"和id为"testId"
<input type="text" value="test3" class="testme" id= "testId3"/>
<input type="button" value="clickme" onclick="testClick()"/>
//创建一个按钮,点击该按钮时会调用testClick函数
</body>
//body元素的结束标签
</html>
//HTML文档的结束标签

调用的第二方法,举例来说明。

结果: 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/587428.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Outlook会议邀请邮件在答复后就不见了

时常会有同事找到我说&#xff0c;Outlook答复会议邀请邮件后收件箱就找不到会议邀请的邮件了。 这其实是Outlook的的一个机制&#xff0c;会把应答后的会议邀请邮件从收件箱自动删除&#xff0c;到已删除的邮件那里就能找到。如果不想要自动删除&#xff0c;改一个设置即可。…

H5类似Word文档输入框小记

最近一个需求在客户端编辑输入超长文本带下划线。 最开始的input、textarea无法像span一样换行pass了。柳暗无天日之际&#xff0c;被投喂了一个contenteditable 。试了一下&#xff0c;嗯... 乌龟看绿豆--对眼了。 div 加上 contenteditable 后便继承了inputEvent 开启输入模…

FreeRTOS第三天

1.GPIO是什么&#xff1f; 通用输入输出接口 2.VCC是什么&#xff1f;VCC通常是多少V&#xff1f; VCC是电源&#xff0c;VCC通常是3.3伏或者5伏 3.FreeRTOS任务有几种状态&#xff0c;分别是什么状态&#xff1f; 四种状态&#xff1a;创建态&#xff0c;运行态&#xff…

cf937Div4E题F题

题目要找到一个长为k的子串,使得x个相同的k相连长度和s相同且对应字符中只能有一个地方对应的字符不同, 那是不是说明s也能分成x段,且最多有一段中的一个字符不同,否则就不满足要求,那我们现在要讨论这个不同的字符在哪,如果在第一段比如sabaa aaaa aaaa aaaa,如果我们取了abaa…

Linux系统下安装jdk与tomcat【linux】

一、yum介绍 linux下的jdk安装以及环境配置&#xff0c;有两种常用方法&#xff1a; 1.使用yum一键安装。 2.手动安装&#xff0c;在Oracle官网下载好需要的jdk版本&#xff0c;上传解压并配置环境。 这里介绍第一种方法&#xff0c;在此之前简单了解下yum。 yum 介绍 yum&…

2023年第十四届蓝桥杯 - 省赛 - C/C++大学A组 - A.幸运数

IDEA 直接暴力循环。 Code Python def check_num(num):str_num str(num)# 先判断是否含有偶数个数位if len(str_num) % 2 ! 0:return Falsestr_num_list list(str_num)# 分成前半部分和后半部分left_num_list list(map(int, str_num_list[:len(str_num) // 2]))right_nu…

HarmonyOS 应用开发之同步任务开发指导 (TaskPool和Worker)

同步任务是指在多个线程之间协调执行的任务&#xff0c;其目的是确保多个任务按照一定的顺序和规则执行&#xff0c;例如使用锁来防止数据竞争。 同步任务的实现需要考虑多个线程之间的协作和同步&#xff0c;以确保数据的正确性和程序的正确执行。 由于TaskPool偏向于单个独…

06 | Swoole 源码分析之 Coroutine 协程模块

首发原文链接&#xff1a;Swoole 源码分析之 Coroutine 协程模块 大家好&#xff0c;我是码农先森。 引言 协程又称轻量级线程&#xff0c;但与线程不同的是&#xff1b;协程是用户级线程&#xff0c;不需要操作系统参与。由用户显式控制&#xff0c;可以在需要的时候挂起、或…

二维数字滤波器设计

Rafael C. Gonzalez “Digital Image Processing”的错误 按理说这本书的第三作者Steven是数字信号处理出身&#xff0c;他本人又对信号处理非常熟悉&#xff0c;不能理解为什么这本书的频域滤波器一章几乎没有对的地方。 对于巴特沃斯等模拟滤波器&#xff0c;利用全通带减去…

The Google File System [SOSP‘03] 论文阅读笔记

原论文&#xff1a;The Google File System 1. Introduction 组件故障是常态而非例外 因此&#xff0c;我们需要持续监控、错误检测、容错和自动恢复&#xff01; 按照传统标准&#xff0c;文件数量巨大大多数文件都是通过添加新数据而不是覆盖现有数据来改变的&#xff0c;因…

Vue基础配置、组件通信、自定义指令

基础配置 Vue框架已经集成了webpack配置 小注意点 vbase 快速生成vue模板 组件名必须是多词格式(驼峰模式) 具体三种写法: ①小驼峰:abcDef.vue ②大驼峰&#xff1a;AbcDef.vue ③中横线&#xff1a;abc-def.vue 假如文件名不符合多次格式的补救办法&#xff1a; 导出重命名…

【单】Unity _RPG项目中的问题

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a; ⭐…