jq选择器 常用方法总结 data数据存储

dom选择器$符号起步参数形式如css即可

进一步选择元素相关方法:   

 .get()    在你选取的标签之中获取指定的那个索引选取或者属性选取 并且该元素是原生dom 数组形式,故无法实现链式调用

 .eq()    在选取的基础上进行筛选雷同get方法 但是他会返回一个jq对象可实现链式调用

 .find()   参数和$一致进行选区dom 在前面基础结构中查找一层层递进 该方法节省效率 返回对象中属性prevObject记录其在那个父级中查找  如下图所示

  .filter()    过滤在你所选定的范围内进行筛选 。此时返回jq对象 区别于遍历时,参数为筛选条件 而不是在你所选的范围内部在进行下一级筛选 属于同级筛选 只ji'sh可以对所选的进行限制,不可以既筛选又限制。参数还可以为一个函数类似于foreach方法遍历索引及数据 但是返回的为原生dom,遍历过程中this指向原生dom

 .not()     参照filter 反选   不满足条件的  

.is()     返回布尔值 前面所选的范围中含有后续条件的dom则返回true  只要有交集就是true

 .has()     

  

选择拥有ul标签的li标签 进行的是下一级的选择区别于filter同级选择

 .add() 集中操作   

.end() 回退操作到pervObject属性指向的那个层级 就是调用prevobject的过程

---------------------------------------------------------------------------------------------------------------------------------------------------------

dom文本操作:  注意总结jq方法可以放函数的情况

注意点:jq操作dom往往操作一堆  但是在html这里例外 单个操作

html()   jq获取所选中的结构中html结构及其文本内容  string形式 也可以赋值

取值的时候会取到第一个值  但是赋值会赋给所有的标签   将字符串解析成html标签

 text()    获取选中标签的文本信息   不会获得html标签信息  赋值时不会将参数解析为标签  都会将其解析成文本

size()  返回选中标签类数组的长度

注意: 以上三个方法均不可以实现链式调用  他们返回值不时jq对象

-------------------------------------------------------------------------------------------------------------------------------------------------------------

dom类名操作 

.addClass 、 为标签添加类名

.removeClass、 移除类名 添加参数移除指定类名 不填则移除所有类名  也是循环操作 针对所有dom 。也可以传函数

.hasClass  判断所选中的dom是否含有指定类名

返回布尔值

.css()  赋值 属性名直接写  属性值为字符串 。也可以取值 传参属性名  获取相应的属性值

.attr()   取值  直接选区dom并且注明属性名  赋值 写明属性名  及其属性值

前后值一致的这种属性写一个就好

.prop()    基于js原生dom操作  无论是取值还是赋值 只可以进行特性映射必须是标签自带属性   自定义属性不可以  无特性不可以映射 

对于一般的属性名 获取它的值  象图中的 会返回布尔值

----------------------------------------------------------------------------------------------------------------------------------------------------------------

.val()    

该方法操作表单元素使用  获取表单元素的val值

------------------------------------------------------------------------------------------------------------------------------------------------------------------

基于jQuery对象查改删增相关方法:

    .next()  获取选中的元素的兄弟元素节点  可接受参数指定条件

、.prev()、 参看next 一前一后就行了

.preAll()、 参看上面的就行区别是上面选中单个节点 下面选中一组节点  同样为兄弟节点

.nextAll()    参看上面的就行区别是上面选中单个节点 下面选中一组节点  同样为兄弟节点

 .prevUntil() 、一句上方方法一样在选取dom基础之上进行兄弟节点的筛选 添加条件直到那个标签位置

.nextUntil()   一句上方方法一样在选取dom基础之上进行兄弟节点的筛选 添加条件直到那个标签位置

 .siblings()   只要你是兄弟节点就获取你  某一节点的所有兄弟节点 注意所有的jq方法都可以添加条件条件可以是标签还可以是函数

   .parent()、不传参数直接获取父级,

.parents()、 不加参数直接获取 该标签的所有父级 如果选中多个标签那么会获取他们所有的父级标签。直到html

.offsetParent()、 获取离你最近的含有定位的父级元素

.closest()    获取到离你最近的满足条件的父级元素 要填条件啊

   .slice()    截取选中包含jq对象的类数组如下

--------------------------------------------------------------------------------------------------------------------------------------------------------------

常用的jq方法如下:

 .insertAfter()、  参照before即可

.After()   

 .insertBefore()、 将选中标签放在目标标签的前面 注意两者的区别   第一位置前后的区别 第二before 选取dom必须要jq对象选取 如果填写字符串会将字符串填写到dom前面

.before()   

 .appendTo()、 添加到目标标签 相当于原生的appendchild()方法

.append()   同样append后面必须添加jq对象否则将解析成为字符串

 .prependTo()、

.prepend()    参考与apend方法该方法在目标标签的前方添加内容 

   .remove()  删除标签的方法  此方法针对于事件处理有删除功能  标签可以还原但是事件没了

、.detach()    效果参照remove()方法  但是会保留事件绑定  不会失效

 $() 参数:标签字符串 创建jQuery对象

该符号允许接受任意形式的dom结构如下:

---------------------------------------------------------------------------------------------

基于jQuery对象增删改查相关方法:    

    .wrap()、 为选取的标签添加一个直接的父级,父级名称为参数名称  字符串或者函数实现循环配置

wrapInner()、为选中标签内部的标签添加父级

wrapAll、 为你选中的满足条件的所有标签添加一个公共父级   区别于wrap为满足条件的标签分别添加父级 只可以为同级的内部标签添加父级 不可以一个内部一个外面

unWrap     与wrap相反  属于去掉选中标签的直接父级  一直调用一直去到body为止

----------------------------------------------------------------------------------------------------------------------------------------------------------------------

原生js中的clone针对于数据类型实现的功能 jq中区别于此 更加贴近于现实意义的克隆 针对于dom而言返回jq对象

.clone()     

不是所有的属性都可以进行克隆的,当参数填写true

jq方法  data 可以使得dom用来存储数据信息   数据信息格式不限   数据存储与dom对象上而不只是直接存储与dom上

-------------------------------------------------------------------------------------------------------------------------------------------------------------------

.data() 习惯性用法及其注意点

数据渲染之前可以将数据保存到了jq对象中去 方便后续使用 之后可以通过data()方法来获取存储的数据

jq获取数据操作的是jq对象 而不是原生dom 节省性能 jq对象与dom只是存在映射关系 不是一回事

关于数据存储与行间  dom等不同位置的理解

前端编程数据存储  

html  标签属性可以存储信息      标签对应js中dom对象也可以存储信息(tag    tag-dom)使得结构拥有自己的信息实现信息结构对应  这就是data方法存储‘

attr和prop也可以实现数据存储以属性的方式 存储于标签之上

但是鉴于jq开发流程  

但数据以att()方法存储于行间时 ,但是实现数据渲染时会再一次操作dom太耗性能(从内存还有操作上);

而jqdata方法操作的是jsjq对象  属于映射池中的数据 并不是直接操作dom 

vue框架 数据存储于行间 不必要进行dom操作 dom操作已经委托出去 而且涉及dom操作时或通过diff算法进行最小dom操作因而效率很高  vue仅仅操作数据层  以及视图层就可以了

发布了56 篇原创文章 · 获赞 1 · 访问量 1205

猜你喜欢

转载自blog.csdn.net/qq_40819861/article/details/102543128