jQuery操作属性、设置文本、遍历元素、元素创建添加删除、操作元素尺寸、操作元素位置、注册事件、事件处理、解绑事件、拷贝、多库共存、jQuery插件

jQuery操作属性:

jQuery中提供三种方法操作属性,分别是:prop()、arrt()、data(),具体如下:

prop()操作自带属性:用来操作元素本身自带的属性(包括没有显示在DOM上的自带属性),如:a标签中的href、img标签中的src,input中checked等,不能操作自定义属性,否则会返回undefined和设置不上,如:

	<script>// 获取img的src属性值:var $imgSrc = $('img').prop('src');console.log($imgSrc);// 设置img的src属性值:$('img').prop('src', 'https://www.baidu.com/img/flexible/logo/pc/result.png');// 获取自定义属性的值:var $dataName = $('img').prop('dataname');console.log($dataName); //undefined// 设置自定义属性:$('img').prop('flag', 'true'); //标签中没有flag这个属性</script>

attr()操作自定义属性:用来操作自己定义的属性,类似javascript中的getAttribute和setAttribute;注意:attr不仅可以操作自定义属性,而且可以操作存在DOM上的自带属性,这里存在的意思是能够用肉眼看的到的自带属性,如img的src属性等,如:

	<script>// 获取img的src属性值:var $imgSrc = $('img').attr('src');console.log($imgSrc);// 设置img的src属性值:$('img').attr('src', 'https://www.baidu.com/img/flexible/logo/pc/result.png');// 获取自定义属性的值:var $dataName = $('img').attr('ataname');console.log($dataName); //可以获取到// 设置自定义属性:$('img').attr('flag', 'true'); //标签中有flag属性</script>

data()数据缓存:data()方法用于临时在标签中存数据,一旦页面刷新后数据将消失,当然可以读取html5中data-自定义属性值,但是获取的时候不能写data-,只需写data-后面的字符即可,如:

	<script>// 向img中存imgName属性及值:$('img').data('imgName', '向日葵');// 获取img的imName属性值:var $imgName = $('img').data('imgName');console.log($imgName);// 读取HTML5中的data-自定义属性值:console.log($('img').data('ins')); //3// 读取普通自定义属性会返回undefinedconsole.log($('img').data('imgyear')) //undefined</script>

设置文本:

javascript中提供了innerHTML、innerText、textContent、value等来设置元素的文本,同样jQuery中也提供了设置文本的方法:html()、text()、val(),其详情:html()对应innerHTML可以识别标签;text()对应innerText只能设置文本内容;val对应value设置特殊标签中的value值,如:

	<script>// 设置text:$('.box1').text('<p>hello word!</p>');// 获取text:console.log($('.box1').text());// 设置html:$('.box2').html('<p>hello word!</p>');// 获取html:console.log($('.box2').html());// 获取val:console.log($('input').val());// 设置val:$('input').val('按钮');</script>

遍历元素:

因为jQuery元素是伪数组,可以使用jQuery提供的API each()来遍历,其语法:$(‘div’).each(function(index,dom){处理代码});each中可以传入一个函数,函数第一个参数表示的当前jQuery元素的索引,第二个参数表示的是当前元素本身自己;遍历后的元素转换为了DOM元素,使用javascript中API进行操作,如:

	<script>$('li').each(function(i, d) {console.log(i);console.log(d);});$('li').each(function(i, d) {d.style.color = 'red';});</script>

注意:除上面的写法外还有一种:$.each(obj,function(index,dom){}),第一个参数可以是一个数组、对象、或伪数组,第二个参数是函数,函数里面传入的参数和第一种写法意思相同,如:

	<script>$.each($('li'), function(i, d) {console.log(i);console.log(d);});$.each({name: 'lack',age: 20}, function(i, d) {console.log(i);console.log(d);});</script>

jQuery元素创建、添加、删除:

创建元素:在javascript中提供了createElement创建元素,jQuery中创建元素直接使用$(’’)即可;

添加元素:jQuery中提供了append()把内容添加到内部最后面、prepend()把内容添加到内部最前面、after()把内容添加到目标元素后面;before()把内容添加到目标元素前面;

删除元素:jQuery中提供了三种删除元素的方式:remove()删除元素本身、empty()删除匹配元素的所有子节点、html(’’)清空匹配的元素内容;如:

	<script>// 1.创建li标签:var $li = $('<li></li>')// 2.给创建的li标签设置文本内容:$li.text('测试');// 3.将设置好文本内容的li添加到ul中:// 3-1.添加到ul里面的最前面:// $('ul').prepend($li);// 3-2.添加到ul里面的最后面:// $('ul').append($li);// 3-3添加到li3元素的前面:// $('.li3').before($li);// 3-4添加到li3元素的后面:$('.li3').after($li);// 4.删除ul中指定的li:// 4-1:删除指定的本身元素:$('.li3').remove();// 4-2:删除指定元素本身:$('p').html('');// 4-3:删除匹配元素的所有子元素:$('body').empty();</script>

元素的尺寸:

jQuery中提供了对元素相关尺寸的获取和设置的API,如下表:
在这里插入图片描述

<script>// 获取div的content宽度:console.log($('div').width());// 设置div的content高度:$('div').height(50);// 获取div的content+padding宽度:console.log($('div').innerWidth());// 设置div的content+padding高度,这里总的尺寸是括号里面的值,padding的值是不变的:$('div').innerHeight(210);// 获取div的content+padding+border宽度:console.log($('div').outerWidth());// 设置div的content+padding+border高度,这里总的尺寸是括号里面的值,padding+border的值是不变的:$('div').outerHeight(115);// 获取div的content+padding+border+margin宽度:console.log($('div').outerWidth(true));// 设置div的content+padding+border+margin高度,这里总的尺寸是括号里面的值,padding+border+margin的值是不变的:$('div').outerHeight(115, true);
</script>

元素的位置:

jQuery中提供了三个常用操作位置的API: offset()、position()、scrollTop()/scrollLeft() , 具体介绍如下:

offset()操作距文档的偏移量:

用来获取或设置元素距离文档的偏移量,该方法有两个属性:top距离文档顶部的距离、left距离文档左边的距离;获取和设置如下:

	<script>// 获取div距离文档顶部的距离:offset().top或offset().leftconsole.log($('div').offset().top);// 设置div距离文档的距离:offset()括号中传入一个关于top和left的对象,注意值为不带单位的数字类型$('div').offset({'left': 500,'top': 200});</script>

position()获取距离父级元素偏移量:

position()是用来获取元素距离父级元素边缘的距离,该方法有两个属性:top元素顶部距离父级元素的距离、left元素左边距离父级元素的距离;注意:此方法只能读取数据,不能设置,如:

	<script>// 获取距离父级元素边缘的距离:position().top 和position().leftconsole.log($('.son').position().top);console.log($('.son').position().left);</script>

scrollTop()和scrollLeft()设置或获取元素卷出浏览器的距离:

scrollTop()和scrollLeft()里面不传入参数时,是用来获取当页面发生滚动时,页面滚出浏览器的距离;当里面传入数字时,是用来设置页面滚出浏览器的距离,如:

	<script>// 获取当前页面滚出浏览器的距离:scrollTop() 和scrollLeft()$(window).scroll(function() {console.log($(this).scrollTop());});// 设置页面滚出浏览器的距离:scrollTop(number) 和 scrollLeft(number)$('div').click(function() {$(document).scrollTop(200);});</script>

注册事件:

jQuery中注册事件语法:element.事件名(function(){处理代码}),事件名和原生一样,操作简单且不会发生事件覆盖问题,但是这种方法不能做事件委托、无法实现事件解绑。

事件处理:

为了解决事件委托及解绑事件问题,jQuery又提供了相关API来实现事件注册,具体如下:

on()绑定事件:

on()是jQuery中提供的比较好的事件绑定的API,语法:element.on({事件名1:function(){},事件名2:function(){}});on()可以绑定多个事件;

如果多个事件的事件处理函数相同,则可以省略相同的事件处理函数,只需在事件名中添加不同的事件名,如:element.on(‘mouseover click’,function(){});

事件委派:on可以代替旧版jQuery中的delegate()、bind()等方法,on()把事件源设置在父级元素上,子级元素设置为触发源,如:$(‘ul’).on(‘click’,‘li’,function(){});

动态的绑定事件:因为普通的事件是无法绑定到动态创建的元素上面的,即原DOM上没有的元素,但是on()可以,具体相关如下:

	<script>// 1通过on()给div绑定多个事件:括号中传入一个事件处理对象$('div').on({click: function() {console.log('执行了click事件');},mouseenter: function() {console.log('执行了mouseenter事件');}});//2多个事件同一个处理函数:$('div').on('mouseenter mouseleave', function() {console.log('鼠标经过了div');});// 3将ul的事件委托给li:$('ul').on('click', 'li', function() {console.log($(this).text());});// 4给动态创建的元素添加事件:$('li').click(function() {console.log('直接通过click给动态生成的div注册点击事件')}); //无法触发事件函数,注意:在以上代码没有注释的情况下,受上面的事件委托的影响// 将ul的事件委托给li:$('ul').on('click', 'li', function() {console.log($(this).text());}); //可以执行事件的处理函数var $li = $('<li>测试</li>');$('ul').prepend($li);</script>

off()解绑事件:

当在某个逻辑处理中,某个事件不需要的时候,可以把该事件的这个逻辑移除,这个过程称为事件解绑。jQuery 提供 了多种事件解绑API:die() / undelegate() / off() 等,还有一次性的事件绑定方法 one();其语法:element.off(),括号里面可以传入事件名,来解绑具体的事件,不传的话解绑所有的事件,如:

	<script>// 解绑简单的事件:$('li').click(function() {console.log('点击事件');});$('li').off('click');// 解绑事件委托:$('ul').on('click', 'li', function() {console.log('委托事件');});$('ul').off('click', 'li');</script>

trigger()自动触发事件:

实际开发中会遇到有些事件需要自动触发的情况,在javascript中轮播图常采用定时器的方式来触发事件,jQuery还提供了自动触发事件的API:trigger()和triggerHander();语法:element.trigger(‘事件名’),trigger()会触发默认的事件,如自动获取焦点;为了不触发默认的事件,可以使用triggerHander(),其语法:element.triggerHander(‘事件名’);

	<script>$('input').click(function() {console.log('点击事件');});// 通过trigger()自动触发事件:$('input').trigger('click');// 通过triggerHander()自动触发事件:$('input').triggerHander('click');</script>

事件对象:

jQuery对事件中的对象做了封装,使用变化不大,兼容性大大提高,相关API可以借鉴javascript原型中的API;

jQuery中阻止默认行为:e.preventDefault()或者return false;

jQuery中阻止冒泡:e.stopPropagation();

拷贝:

jQuery中提供了比原型中更简洁的拷贝方法:$.extend(boolean,target,obj);第一个参数控制深浅拷贝,是可选的;第二个参数是需要拷贝对象到目标元素,参数三及后面参数都是要拷贝的对象;特别提醒:浅拷贝中,如果目标对象被修改了,那么原对象也会被修改,因为两个对象之间的地址相同,都指向同一个对象;深拷贝中则不会出现这样的情况,因为深拷贝中地址和对象完全是复制的,地址不同,指向的对象也不同;

	<script>// 浅拷贝:var obj1 = {name: 'jack'};var obj2 = {age: 18};$.extend(obj1, obj2);console.log(obj1); //{name: "jack", age: 18}// 深拷贝:var obj3 = {name: 'jack'};var obj4 = {name: 'luck'};$.extend(true, obj3, obj4);console.log(obj3); //{name: "luck"}</script>

多库共从:

实际开发中有的其他js库,或其他版本的jQuery库可能会同时存在,此时$会混乱,为了解决这个问题,可以将$写成jQuery,或者使用jQuery.noConflict()自定义名称,如:

	var jqFlag = noConflict();

jQuery插件:

由于jQuery本身的效果是有限的,若要做更复杂的特效,可以借助插件来完成效果。这里推荐两款比较常用的jQuery插件:

1.jQuery插件库:其官网:http://www.jq22.com/

2.jQuery之家:其官方网站: http://www.htmleaf.com/

使用步骤:1.引入相关文件 2.复制案例html,css,js相关代码,具体详情查阅官方文档。

推荐查询网站:

由于jQuery中的相关属性和方法很多,这里只是总结了开发中常用的API,如果想了解更多,请查阅官方文档,推荐网站:https://jquery.cuishifeng.cn/

提示:本文图片等素材来源于网络,若有侵权,请发邮件至邮箱:810665436@qq.com联系笔者删除。
笔者:苦海

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

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

相关文章

C_文件读写流

strcmp() 所在头文件&#xff1a;string.h 功能&#xff1a;比较俩个字符串 一般形式&#xff1a;strcmp(字符串1&#xff0c;字符串2) 说明&#xff1a; 当S1<S2时&#xff0c;返回为负数return result,result<0 当S1S2时&#xff0c;返回值0 当S1>S2时&#xff0c;返…

初次使用Apache、ip地址、防火墙、域名、DNS、hosts文件、端口、URL介绍、Apache配置文件、配置虚拟主机、请求响应、http协议、

Apache提供web服务&#xff1a; 启动Apache&#xff0c;让其客户端可以使用你机器上安装的Apache提供的web服务&#xff0c;访问你机器上的网站。这种情况下你的计算机就是服务器&#xff0c;别人的机器就是客户端。 注意&#xff1a;确保配置文件语法检查通过&#xff0c;确…

量子计算机算法与应用研究论文(转载务必注明出处)

量子计算机算法与应用研究 学科分类&#xff1a;计算机科学 湖北省沙市中学 谢晓啸 摘要 1.量子计算机 2.量子计算机算法 3.移动互联 4.云计算 5.经典计算机的局限 6.量子计算前景 二零一四年一月十二日 目 录 摘 要......................................................…

cookie和session、web服务工作原理、Apache配置php扩展、php简介

cookie和session: cookie和session区别&#xff1a;cookie数据是存在本地的&#xff0c;而session数据是存在服务端的&#xff0c;session比cookie更安全。 cookie&#xff1a;用于http做会话时记住客户端所做的事,这里可以解决首次登陆页面广告等问题。 服务端与客户端在做开…

分享MYSQL中的各种高可用技术(源自姜承尧大牛)

图片和资料来源于MYSQL大牛姜承尧老师&#xff08;MYSQL技术内幕作者&#xff09; 姜承尧&#xff1a; 网易杭州研究院 技术经理 主导INNOSQL的开发 mysql高可用各个技术的比较 数据库的可靠指的是数据可靠 数据库可用指的是数据库服务可用 可靠的是数据&#xff1a;例如工商银…

php中数据类型、数组排序、循环语句、混编、操作本地文件流程、常用API、函数、魔术常量

php中数据类型&#xff1a; php中有7种数据类型&#xff0c;分别是&#xff1a; //1.String字符串&#xff0c;用引号包裹的字符&#xff0c;如&#xff1a;$str hello word;//2.Integer整型&#xff0c;可以是正数或负数&#xff0c;有十进制、十六进制、八进制&#xff0c;…

J2ME游戏中的图片处理

图片资源乃是游戏的外衣&#xff0c;直接影响一个游戏是否看上去很美。在J2ME游戏开发中&#xff0c;由于受到容量和内存的两重限制&#xff0c;图片使用受到极大的限制。在这种环境中&#xff0c;处理好图片的使用问题就显得更加重要。 本文从容量和内存两个方面谈谈J2ME游戏图…

php中命名空间、面向对象、访问控制、接口

命名空间&#xff1a; php中命名空间&#xff1a;解决自己编写的代码和php内置及第三方的函数、常量、类命名冲突问题(在不同的命名空间可以定义相同名称的常量、类、函数)&#xff1b;及为繁琐的命名创建一个别名&#xff0c;具体如下&#xff1a; //1.简单定义命名空间&…

经典的十个机器学习算法

1、C4.5 机器学习中&#xff0c;决策树是一个预测模型&#xff1b;他代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象&#xff0c;而每个分叉路径则代表的某个可能的 属性值&#xff0c;而每个叶结点则对应从根节点到该叶节点所经历的路径所表示的对象的…

JSON数据、字符串拼接、宽字符处理、数组、Notice警告、isset和empty、变量、作用域、常量、include和require

JSON数据&#xff1a; 字面量是代码中表述数据的手段&#xff0c;JSON是一门类似于js字面量表述数据的手段&#xff0c;JSON是现在市面上用的最广的数据表述手段。 1.JSON对象中属性名称必须用双引号引起来 2.JSON中字符串必须用双引号引起来 3.JSON中不允许使用注释 4.JS…

表单及数据提交、表单的作用、服务端接收提交的数据、php处理数据流程、文件域及文件域中数据处理、php展示数据(响应)

表单及数据提交&#xff1a; 表单的作用&#xff1a; 用于收集相关信息&#xff1b;html中有专门提交数据的标签&#xff0c;可以很容易的收集用户输入的信息&#xff0c;这个标签有两个重要的属性&#xff1a;action表单提交的地址和method以什么方式提交表单&#xff0c;通…

数据库、MySQL介绍及安装流程、SQL语句中增删改查、SQL注入、通过php操作数据库,plugin ‘caching_sha2_password加密规则,分表查询

MySQL数据库&#xff1a; 数据库&#xff1a; 存放数据的仓库&#xff0c;用来按照特定的结构去组织和管理我们的数据&#xff0c;有数据库就可以更加方便的储存数据&#xff1b; 数据库只是存储数据的一种手段&#xff0c;最终数据是存放在硬盘中的&#xff0c;只是存放的格…

可能 delphi7 下稳定的最后一版本 GDIPLUS

可能 delphi7 下稳定的最后一版本 GDIPLUS 可能 delphi7 下稳定的最后一版本 GDIPLUS万一的 blog 说"终于, Delphi XE2 携带 GDI 库了使用了较早的 http://www.progdigy.com"但这个网址已经下不了了,而 http://www.bilsen.com/gdiplus 的又要 delphi2009 以后版本,另…

ajax背景、ajax对象、ajax状态、ajax与http、ajax请求数据接口、同步与异步、ajax请求XML数据、封装ajax函数、artTemplate简介、同源策略和跨域请求、JSONP

AJAX简介&#xff1a; ajax背景&#xff1a; 1.AJAX(Asynchronous JavaScript And Xml)异步的 JavaScript 和 XML:ajax是浏览器提供的一套API&#xff0c;最早出现在谷歌浏览器&#xff0c;是在浏览器端进行网络编程(发送请求、接收响应)的技术方案。它可以使我们通过JavaScr…

我的第一个项目(人力资源管理之报表管理)

2014年暑期实习老师要求的是人力资源管理系统&#xff0c;组队后组长分配给的任务是报表管理。 我做的报表管理&#xff0c;主要的功能是用户输入查询的时间区间和查询部门&#xff0c;然后将数据据库返回的数据显示在浏览器上。用户可以选择是否生成excel表格&#xff08;表格…

jQuery中的ajax、jquery中ajax全局事件、load实现页面无刷新局部加载、ajax跨域请求jsonp、利用formData对象向服务端异步发送二进制数据,表单序列化(异步获取表单内容)

jQuery中使用ajax&#xff1a; 在jQuery中使用ajax首先需要引入jQuery包&#xff0c;其引入方式可以采用网络资源&#xff0c;也可以下载包到项目文件中&#xff0c;这里推荐下载包到文件中&#xff1b;市面上有多个版本的jQuery库&#xff0c;这里到官网&#xff1a;https://…

chartjs和echartsjs库简介

chart.js和echarts.js: 尽管我们已经掌握了canvas绘图和SVG矢量图&#xff0c;在实际开发中我们依旧不会使用canvas和SVG&#xff0c;因为考虑到开发成本&#xff0c;一般会采用相关的图表库进行辅助开发&#xff0c;市面上常用的图表库有chart.js和echarts.js&#xff1b;如果…

弱智的我

【你能看到多少个人头? 】 0—4张: 弱智; 5—8张: 一般人; 9—11张: 特别感性; 11—13张: 精神分裂. 晕倒, 我是弱智的...就看到一个人头...转载于:https://www.cnblogs.com/zhangzujin/p/3877222.html

POJ 1201

d[i]表示在[0,i]这个区间内一共选了d[i]个数 对于每个为[ai,bi]的区间&#xff0c;你必须在这个区间上至少取ci个不同的整数&#xff0c;用d[i]如何表示&#xff1f; d[ bi ]-d[ ai-1 ] > ci Edge:(ai-1 -> bi) val ci 另外&#xff1a; 0<d[i]-d[i-1]<1 对应边Ed…

typecho和wordpress模板了解、开发流程介绍、前台后台前端后端区分

网站模板搭建网站&#xff1a; 使用网站模板搭建网站很简单&#xff0c;只需要将相关文件放到你自己的服务器上面&#xff0c;之后在进行相关的配置即可。这里给大家介绍两款网站模板&#xff1a; typecho&#xff1a; 是一个轻量高效&#xff0c;简单操作就能搭建网站的模板…