jQuery(二):属性、元素、尺寸位置操作、事件

news2024/11/24 16:32:37

jQuery

    • 属性操作
    • 内容文本值
    • 元素操作
    • 尺寸、位置操作
    • 事件注册
    • 事件处理
    • 事件对象
    • 拷贝对象

属性操作

1.获取固有属性语法

prop(‘‘属性’’)

固有属性就是html自带的,例如a元素里面的 href ,input 元素里面的 type。

2.设置固有属性语法

prop(‘‘属性’’, ‘‘属性值’’)

3.获取自定义属性语法

attr(‘‘属性’’) // 类似原生 getAttribute()

4.设置自定义属性语法

attr(‘‘属性’’, ‘‘属性值’’) // 类似原生 setAttribute()

5.数据缓存 data()

附加数据语法

data(‘‘name’’,‘‘value’’) // 向被选元素附加数据

获取数据语法

date(‘‘name’’) // 向被选元素获取数据

例如:

请添加图片描述
效果:
请添加图片描述

请添加图片描述

6.parents()选择器返回祖先元素

例如:
请添加图片描述

结果:

请添加图片描述

内容文本值

主要针对元素的内容还有表单的值操作。

1. 普通元素内容 html()( 相当于原生inner HTML)

html() // 获取元素的内容

html(‘‘内容’’) // 设置元素的内容

2. 普通元素文本内容 text() (相当与原生 innerText)

text() // 获取元素的文本内容

text(‘‘文本内容’’) // 设置元素的文本内容

3. 表单的值 val()( 相当于原生value)

val() // 获取表单的值

val(‘‘内容’’) // 设置表单的值

例如:

请添加图片描述

效果:

请添加图片描述

元素操作

1.遍历元素

jQuery隐式迭代是对同一类元素做了同样的操作。 如果想要给同一类元素做不同操作,就需要用到遍历。

语法格式一:

$(“div”).each(function (index, domEle) { xxx; })

  • each() 方法遍历匹配的每一个元素。主要用DOM处理。 each 每一个
  • 回调函数有2个参数: index 是每个元素的索引号; demEle 是每个DOM元素对象,不是jquery对象
  • 使用jquery方法,需要给这个dom元素转换为jquery对象 $(domEle)

语法格式二:

$.each(object,function (index, element) { xxx; })

  • $.each()方法可用于遍历任何对象。主要用于数据处理,比如数组,对象
  • 函数有2个参数: index 是每个元素的索引号; element 遍历内容

例如:

    <div>1</div>
    <div>2</div>
    <div>3</div>
    <script>
        $(function () {
            //each()方法遍历元素
            //方法一 $('').each(function(索引号,遍历内容){})
            var arr = ['red', 'blue', 'green']
            $('div').each(function (i, domEle) {
                //回调函数第一个值一定是索引号,索引号可以自己命名
                //回调函数第二个值是DOM元素对象,因此要先把jQuery换位DOM对象
                $(domEle).css('background', arr[i]);
                //实现方法是i从0开始,先进行deomEle第一个对象的操作,把它的元素背景颜色换位arr[0].
                //做完第一个在做相同操作的第二步,jQuery的each()方法和DOM里面的for循环相同

            })
            //方法二 $.each(遍历对象,function(索引号,遍历内容){})  第二种方法主要处理数据
            $.each(arr, function (i, ele) {
                console.log(i);
                console.log(arr);
            })
            $.each({
                name: 'hello',
                age: 18
            }, function (i, e) {
                console.log(i);//遍历的是属性名 name,age
                console.log(e);//遍历的是属性值  hello,18
            })
        })
    </script>

效果:

请添加图片描述请添加图片描述

2.创建元素

语法格式:

请添加图片描述
动态的创建了一个li元素

3.添加元素

内部添加

把内容放入匹配元素内部最后面,类似原生 appendChild。

element.append(‘‘内容’’)

把内容放入匹配元素内部最前面。

element.prepend(‘‘内容’’)

外部添加

element.after(‘‘内容’’) // 把内容放入目标元素后面

element.before(‘‘内容’’) // 把内容放入目标元素前面

  • 内部添加元素,生成之后,它们是父子关系。
  • 外部添加元素,生成之后,他们是兄弟关系。

4.删除元素

element.remove() // 删除匹配的元素(本身)

element.empty() // 删除匹配的元素集合中所有的子节点

element.html(‘’‘’) // 清空匹配的元素内容

  • remove 删除元素本身。
  • empt() 和 html(‘’‘’) 作用等价,都可以删除元素里面的内容,只不过 html 还可以设置内容。

例如:

请添加图片描述

尺寸、位置操作

1.获取元素尺寸

请添加图片描述

  • 以上参数为空,则是获取相应值,返回的是数字型。
  • 如果参数为数字,则是修改相应值。
  • 参数可以不必写单位。

例如:

请添加图片描述

2.offset() 设置或获取元素偏移

  • offset() 方法设置或返回被选元素相对于文档的偏移坐标,跟父级没有关系。
  • 该方法有2个属性 left、top 。offset().top 用于获取距离文档顶部的距离,offset().left
    用于获取距离文档左侧的距离。
  • 可以设置元素的偏移:offset({ top: 10, left: 30 });

3.position() 获取元素偏移

  • position() 方法用于返回被选元素相对于带有定位的父级偏移坐标,如果父级都没有定位,则以文档为准。

  • 该方法有2个属性 left、top。position().top 用于获取距离定位父级顶部的距离,position().left
    用于获取距离定位父级左侧的距离。

  • 该方法只能获取。

4.scrollTop()/scrollLeft() 设置或获取元素被卷去的头部和左侧

  • scrollTop() 方法设置或返回被选元素被卷去的头部。

  • 不跟参数是获取,参数为不带单位的数字则是设置被卷去的头部。

请添加图片描述

请添加图片描述
请添加图片描述

事件注册

语法格式:

$(“element”).事件(function(){ 事件处理程序 })

事件处理

1.事件处理 on() 绑定事件

on() 方法在匹配元素上绑定一个或多个事件的事件处理函数

语法格式:

element.on(events,[selector],fn)

  • events:一个或多个用空格分隔的事件类型,如"click"或"keydown" 。
  • selector: 元素的子元素选择器 。
  • fn:回调函数 即绑定在元素身上的侦听函数。

例如:

请添加图片描述

  • on() 方法优势1:可以绑定多个事件,多个处理事件处理程序。 如果事件处理程序相同,可以写在一个on里面
    请添加图片描述
  • on() 方法优势2:可以事件委派操作 。事件委派的定义就是,把原来加给子元素身上的事件绑定在父元素身上,就是把事件委派给父元素。

请添加图片描述
on() 方法优势3:动态创建的元素,例如click() 没有办法绑定在js中动态创建的事件, on() 可以给动态生成的元素绑定事件

请添加图片描述

2.off() 解绑事件

off() 方法可以移除通过 on() 方法添加的事件处理程序。如果有的事件只想触发一次, 可以使用 one() 来绑定事件。

注意:off()解绑只针对通过on()方法添加的事件处理程序

$(“p”).off() // 解绑p元素所有事件处理程序

$(“p”).off( “click”) // 解绑p元素上面的点击事件 后面的 foo 是侦听函数名

$(“ul”).off(“click”, “li”); // 解绑事件委托

请添加图片描述

3.自动触发事件 trigger()

语法格式

element.click() // 第一种简写形式

element.trigger(“type”) // 第二种自动触发模式

element.triggerHandler(type) // 第三种自动触发模式

triggerHandler模式不会触发元素的默认行为,这是和前面两种的区别。

请添加图片描述

事件对象

element.on(events,[selector],function(event) {})

里面的event就是事件对象

阻止默认行为:

event.preventDefault() 或者 return false

阻止冒泡:

event.stopPropagation()

例如:

请添加图片描述
没有设置阻止冒泡,当我们点击div时,document的冒泡事件也会被触发,效果如下:

请添加图片描述

例二:

请添加图片描述
设置了防止冒泡事件之后点击div就不会document的点击事件了,效果如下:
请添加图片描述

拷贝对象

语法格式:

$.extend([deep], target, object1, [objectN])

  • deep: 如果设为true 为深拷贝, 默认为false 浅拷贝
  • target: 要拷贝的目标对象
  • object1:待拷贝到第一个对象的对象。
  • objectN:待拷贝到第N个对象的对象。
  • 浅拷贝是把被拷贝的对象复杂数据类型中的地址拷贝给目标对象,修改目标对象会影响被拷贝对象。
  • 深拷贝,前面加true, 完全克隆(拷贝的对象,而不是地址),修改目标对象不会影响被拷贝对象。
    请添加图片描述
    请添加图片描述

浅拷贝是把原来对象的复杂数据(例如对象里面的函数)的地址拷贝给目标对象,这样我们修改目标对象的值的话,原来的被拷贝的对象值也会发生变化,类似于C语言指针
深拷贝会复制复杂数据的全部数据,修改目标对象的数值,被拷贝对象值不会变化

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

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

相关文章

Python NumPy 搜索 数组

前言NumPy&#xff08;Numerical Python的缩写&#xff09;是一个开源的Python科学计算库。使用NumPy&#xff0c;就可以很自然地使用数组和矩阵。NumPy包含很多实用的数学函数&#xff0c;涵盖线性代数运算、傅里叶变换和随机数生成等功能。本文主要介绍Python NumPy 搜索 数组…

Linux小黑板(8)管道

"让我们,笑吧"一、什么是通信?管道是属于进程间通信的一个实现方式。再讲管道之前呢&#xff0c;我们先来说说什么叫做进程间通信。我们日常生活中&#xff0c;给自己的家人、朋友给一个call&#xff0c;或者弹一条微信、QQ等等&#xff0c;从而让人家能够知道我们想…

Databend 开源周报第 76 期

英文版移步&#xff1a;https://databend.rs/blog/2023-01-11-databend-weekly Databend 是一款强大的云数仓。专为弹性和高效设计。自由且开源。即刻体验云服务&#xff1a;https://app.databend.com 。 What’s New 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的…

vue 中由浅拷贝引发问题的一些场景

在工作的过程中踩了很多的由浅拷贝导致的坑&#xff0c;今天总结在这里&#xff0c;希望对大家有所帮助 1. 组件中直接抛出一个引用类型变量 &#x1f330;举个例子 &#xff08;ps: 以下代码为伪代码&#xff0c;主要展示逻辑用&#xff09; 子组件&#xff08;uploadImg&a…

线 程 同 步、线程的死锁问题

线程同步&#xff1a; 模拟售票程序出现问题&#xff1a;当多个线程同时访问共享数据时&#xff0c;产生无序、重复、超额售票等多线程安全问题 解决&#xff1a;将多个线程需要访问的共享数据&#xff0c;包装起来视为一个整体&#xff0c;确保一次只有一个线程执行流访问共享…

春节福利丨神策数据 2022 年数字化营销资料打包全送

2022 年&#xff0c;神策数据出品多份行业研究报告&#xff0c;覆盖银行、证券、零售、教育、电商、融合媒体等多个行业&#xff0c;帮助更多企业通过多视角洞见紧握数字化营销的方向和趋势&#xff0c;用方法论结合落地实践驱动企业数字化经营。01B2B 电商数字化运营聚焦四类 …

【自学Python】Python查找字符串位置

Python查找字符串位置 大纲 Python查找字符串位置教程 在开发过程中&#xff0c;很多时候我们有在一个 字符串 中查找另一个字符串位置的需求&#xff0c;在 Python 中&#xff0c;在一个字符串中查找另一个字符串的位置我们使用 index() 函数。 index() 函数的功能与 find(…

力扣(78.90)补9.22

78.子集 感觉不太难&#xff0c;但是就是不会写。感觉回溯里有很多细节问题。 class Solution { private: vector<vector<int>> res; vector<int> num; void back(vector<int>& nums,int index,int end){ res.push_back(num); …

【JavaEE初阶】第三节.多线程基础篇

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 文章目录 前言 一、认识线程 二、多线程程序 2.1 第一个Java多线程程序 2.2 怎么样观察线程的详细情况 2.3 sleep方法 2.4 run 和 start 方法的区别是什么 三、创…

在springboot中配置热部署

今天什么节日也不是&#xff0c;那就祝大家今天快乐。 热部署 所谓热部署&#xff0c;就是在应用正在运行的时候升级软件&#xff0c;却不需要重新启动应用。对于Java应用程序来说&#xff0c;热部署就是在运行时更新Java类文件。在以往&#xff0c;我们对java代码进行修改之后…

【HBU】大一下期末重点

物理简答题一、牛顿第二定律&#xff08;Fdp/dt &#xff09;&#xff1a;1. 飞机怕小鸟:Fdp/dt 力与作用时间的乘积等于物体动量的变化。由于小鸟与飞机相对速度很大&#xff0c;作用时间很短,产生的作用力很大&#xff0c;当小鸟与飞机向撞&#xff0c;效果与同质量炮弹撞飞机…

正则表达式入门及常用正则表达式

常用正则表达式 1 正则表达式的基础概念 1.1 预定义字符 . 表示任何字符&#xff08;与行结束符可能匹配也可能不匹配&#xff09; \d 数字&#xff1a;[0-9] \D 非数字字符&#xff1a;[^0-9] \s 空白字符&#xff1a;[\t\n\xoB\f\r] \S 非空白字符&#xff1a;[^\s] \w 单…

k8s的YAML部署rocketmq记录

说明 测试环境是k8s集群&#xff0c;在上边部署一套单节点的rocketmq nameserver部署 Service和StatefulSet脚本如下 apiVersion: v1 kind: Service metadata:labels:app: rocketmqnamesrvname: rocketmqnamesrv spec:type: ClusterIPports:- port: 9876targetPort: 9876na…

Pytorch深度学习【十四】

批量归一化 归一化 损失出现在最后&#xff0c;后面的层(高级语义层)训练较快数据输入在最底部 底部的层训练慢底部层一变化&#xff0c;所有高级语义层都得跟着变最后的那些层需要重新学习多次—收敛速度变慢 问题—是否可以在学习底部层的时候避免变化顶部层 批量归一化 固定…

8 个精彩的免费 G​​IS 软件资源分享

有人说&#xff1a;一个人从1岁活到80岁很平凡&#xff0c;但如果从80岁倒着活&#xff0c;那么一半以上的人都可能不凡。 生活没有捷径&#xff0c;我们踩过的坑都成为了生活的经验&#xff0c;这些经验越早知道&#xff0c;你要走的弯路就会越少。 GIS 软件有两种通用格式&a…

【面试题】2023年前端最新面试题-性能优化篇

原文见&#xff1a;语雀&#xff08;https://www.yuque.com/deepstates/interview/xtt59x&#xff09; ● 性能指标 ● 分析工具 ● 优化方式 ○ 加载 ○ 渲染 ● 专题优化 ○ 技术栈&#xff1a;react ○ 浏览器 ○ 打包工具&#xff1a;webpack ● 项目 ⭐️⭐️⭐️ 相关知…

如何隐藏电脑硬盘分区?

无论是个人还是公司的电脑我们都会储存一些重要的数据&#xff0c;有些甚至还是涉及个人隐私或公司的商业机密。为了更好地保护电脑磁盘中的重要资料&#xff0c;部分用户希望能将硬盘分区隐藏起来。那么怎么隐藏硬盘分区呢&#xff1f;方法一&#xff1a;使用磁盘管理隐藏硬盘…

将vscode打造为你的开发工具的首选

文章目录前言vscode主要配置vscode的两个主要快捷键Java配置JDK和Gradle环境主要插件常见的配置launch.json配置运行测试用例常见问题Python主要插件settings.json配置Javascript/typescript常用插件settings.json样例Golang参考前言 什么是IDE? IDE 文本编辑 搜索 代码导…

Matlab矩阵和数组的操作

一、矩阵的建立 1、直接输入法 将矩阵的元素用方括号括起来&#xff0c;按矩阵行的顺序输入各元素&#xff0c;同一行的各元素之间用空格或逗号分隔&#xff0c;不同行的元素之间用分号分隔。 A [16 3 2 13; 5 10 11 8; … 9 6 7 12; 4 15 14 1] A 16 3 2 13 5 10 11 8 9 6…

如何有效的增加 shopee 的流量?

很多卖家选择在跨境电商平台开店。说到跨境电商&#xff0c;大家首先想到的应该是亚马逊、易趣等电商平台&#xff0c;边肖会在shopee平台上给大家带来店铺。新店如何获得流量&#xff1f;有哪些方式&#xff1f;米贸搜为你整理如下&#xff1a;shopee店铺如何获取流量&#xf…