jQuery总结---版本一
day01---
jQuery是一个函数库,简化了DOM操作,屏蔽了浏览器兼容性问题。函数分为4类
(1)DOM操作
(2)事件处理
(3)动画
(4)AJAX
jQuery3的新特性有哪些?
1. 移除旧的IE工作区
2. jQuery 3.0运行在Strict Mode下
3. 引进for...of循环
4. 动画方面采用新的API
5. 对包含特殊含义的字符串提供转义的新方法
6. 类操作方法支持SVG
7. 延迟对象现在与JS Promises兼容
8. jQuery.when()对于多种参数的不同解读
9. 新的显示/隐藏逻辑
10. 对于防止XSS攻击的额外保护
2.jQuery函数的特点
(1) $或者jQuery是一个函数,返回值是一个jQuery类数组对象
(2)即使没有查找到需要的元素,jQuery类数组对象也不会是null/undefined,调用jQuery函数不会报错!
(3)jQuery类数组对象提供的函数都自带for循环遍历每个查找到的元素
(4)jQuery函数底层都是DOM操作,所以可和原生的DOM操作组合使用
(5)原生DOM对象不能调用jQuery提供的函数;jQuery函数返回的类数组对象也不能调用核心DOM成员
(6)原生DOM对象和jQuery对象间如何转换:
原生DOM对象封装到一个jQuery类数组对象
$(domObject)
jQuery类数组中取出封装的DOM对象:
$('button')[index]
(7)jQuery对象方法的返回值一般还是当前选定的类数组对象,可以实现“链式调用”
1.常用核心DOM操作
(1)查找元素方法
document.getElementById("id");
document.getElementsByName("uname");//根据name属性名获取
document.getElementsByTagName("p")//获取所有的p元素
document.getElementsByClassName("className");//根据类名获取元素
document.querySelector("选择器");//根据选择器选择单个元素
document.querySelectorAll("选择器");//根据选择器选择所有匹配元素
(2)遍历节点
node.parentNode
parent.childNodes(节点树) parent.children(元素树)
node.nextSibling node.previousSibling node.nextElementSibling node.previousElementSibling
(3)修改元素属性
element.getAttribute("属性名");
element.setAttribute("属性名","属性值");
(4)修改元素内容
element.innerHTML
element.innerText/element.textContent
(5)修改元素样式
element.style.color="red";
element.className="btn btn-danger";//通过类名来增加样式
(6)修改表单元素属性值
inputElement.value="值";
(7)添加新元素
var newElement= document.createElement("div");
parent.appendChild(newElement);
(8)删除已有元素
parent.removeChild(node)
(9)替换旧元素
parent.replaceChild(oldChild,newChild)
(10)元素克隆
parent.cloneNode();
jQuery操作
jQueryDOM操作——查找节点
jQuery('选择器') =》 类数组对象
基本选择器:
#id、.class、div、*、button,.btn
层级选择器:
parent child
parent > child
prev + next
prev ~ siblings
基本过滤选择器:
:first :last :eq(i) :gt(i) :lt(i)
:odd :even :not(selector)
子代过滤选择器:
:first-child :last-child :nth-child(i)
:nth-child(odd) :nth-child(even)
属性选择器:
[attr="value"]
可见性选择器:
:visible :hidden
内容选择器:
:contains(txt) :has(selector)
:empty :parent
表单元素选择器:
:text :radio :submit
:disabled :enabled :checked :selected
核心DOM操作和jQuery操作对比
1.操作元素的属性
<a href="" title="" data-toggle="dropdown">
核心DOM:
element.getAttribute('title')
element.setAttribute('title', 'abc')
jQuery:
var value = $(..).attr('title') //读取属性的值
$(..).attr('title', 'abc') //设置属性的值
提示:读取和设置元素的data-*扩展属性,可以使用attr()方法,也可以使用data()方法,如: <a data-my-target="1.jpg">
var v = $(...).data('my-target') //读取
$(...).data('my-target', '2.jpg') //设置
2.操作元素的内容
核心DOM:
var h = element.innerHTML;
element.innerHTML = h;
var t = element.innerText/textContent;
element.innerText/textContext = t;
jQuery:
$(..).html( ) //读取innerHTML
$(..).html( 'html' ) //设置innerHTML
$(..).text( ) //读取innerText
$(..).text( 'txt' ) //设置innerText
3.操作元素的样式
核心DOM:
var c = element.style.color //读取行内样式
element.style.color = 'red' //设置行内样式
var n = element.className //读取ClassName
element.className = n //设置ClassName
jQuery:
$(..).css('color') //读取指定样式的值
$(..).css('color', 'red') //设置行内样式
$(..).addClass('alert') //添加一个class
$(..).removeClass('alert') //删除一个class
$(..).hasClass('alert') //判断选定元素是否具有指定class
4.操作表单元素的值
核心DOM:
var v = input.value //读取值
input.value = 'v' //设置值
jQuery:
$(...).val( ) //读取值
$(...).val('value') //设置值
面试题:在操作元素的相关属性时,使用attr()、val()、prop()、data()有何区别?
attr()一般只用于操作元素的HTML字面属性,如src、href、name...
val()操作的是HTML元素对应的JS对象的value属性
prop()操作的是HTML元素对应的JS对象的disabled、readyonly、selected、checked等Boolean类型属性
data()操作的是HTML元素对应的JS对象的扩展数据属性(对象缓存数据),而attr('data-xx')读取/修改的HTML元素字面属性
5.遍历DOM树上的节点
核心DOM:
element.parentNode //寻找父节点
element.childNodes/children //获取子节点
elemnet.nextSibling //获取下一个兄弟
element.previousSibling //获取上一个兄弟
jQuery:
$(..).parent() //返回选定元素的父节点
$(..).children() //返回所有子节点
$(..).next() //返回下一个兄弟
$(..).prev() //返回上一个兄弟
$(..).siblings() //返回所有的同辈兄弟
6.添加新的元素
核心DOM:
var li = document.createElement('li') //创建子节点
//修改li的属性.... //设置其属性
ul.appendChild( li ); //添加到父节点
jQuery:
var li = $('<li class="item">内容</li>') //创建子节点
//li.click(fn)
$('ul').append( li ); //在父节点最后追加子节点
$(li).appendTo( 'ul' ) //子节点追加到父节点最后
-------可以简写为------------------------------
$('ul').append( '<li class="item">内容</li>' )
7.删除已有的元素
核心DOM:
ul.removeChild( li ) //由父元素删除孩子
jQuery:
$('li').remove() //删除当前选定元素
8.替换已有元素
核心DOM:
parent.replaceChild(oldChild, newChild);
jQuery:
$('oldChild').replaceWith( newChild ) //已有节点用新节点替换,返回被删除的旧节点
$('newChild').replaceAll( oldChild ) //新节点替换所有的旧节点,返回新节点
9.克隆节点
核心DOM:
var copy = element.cloneNode( )
jQuery:
var copy = $(..).clone() //返回选定元素的副本
var copy = $(..).clone(copyListener) //参数指示是否复制选定元素绑定的监听函数,默认为false,不复制监听函数
jQuery总结---版本一的更多相关文章
- jquery各版本区别
jquery版本区别: 1.3一般功能够 1.4.2一般功能够而且稳定 1.7+比较新特性 2不支持老IE 兼容的话最好选 1.x.稳定性就用1.7或者1.4,其中1.4的体积相对 ...
- [转]jQuery不同版本区别
原文转载自csdn:http://blog.csdn.net/u010167032/article/details/23666145 了解不同版本之间的差异,与助于选择适合自己项目的版本. ⒈4重要新 ...
- Jquery各个版本的区别
一: 一般原则是越新越好,jQuery版本是在不断进步和发展的,最新版是当时最高技术水平,也是最先进的技术理念. 但个人的角度来看.是最新版本x.x.0的上一版本最好.比如说1.10.0版,上一版本是 ...
- jQuery的版本兼容问题
之前在做头像上传的时候,使用的jQuery是1.8.2的版本,然后头像上传做完后,发现项目用的jQuery版本是3.3.1的.由于两个版本的差距太大了.所以兼容很差. 3.3.1不支持剪切头像的某些函 ...
- jquery()后续版本中,live()取消后使用on()实现功能写法
今天做项目想用live()功能,写完打开浏览器发现报错 然后查了查发现自己用的是jquery是jquery-2.1.1.min.js,而jquery早就取消了live()方法,在后续版本里都已经没有使 ...
- jquery所有版本下载外链地址
jquery-2.1.1 (注!jquery-2.0以上版本不再支持IE 6/7/8) 百度引用地址 (推荐目前最稳定的,不会出现延时打不开情况) 百度压缩版引用地址: <script src= ...
- Jquery各版本下载
jquery-2.1.4 (注!jquery-2.0以上版本不再支持IE 6/7/8) 百度引用地址 (推荐目前最稳定的,不会出现延时打不开情况) 百度压缩版引用地址: <script src= ...
- jquery全部版本
http://www.jb51.net/zt/jquerydown.htm 这个地方实时更新jquery版本
- jQuery各版本CDN
jquery-2.1.1 注:jquery-2.0以上版本不再支持IE 6/7/8)百度引用地址 (推荐目前最稳定的,不会出现延时打不开情况) 百度压缩版引用地址:<script src=”ht ...
- angularjs1+requirejs+ bootstrap+ jQuery低版本配合兼容ie8+浏览器
angularjs兼容低版本IE浏览器(IE8)angularjs在1.3之后的版本都是选择放弃对IE8及更低IE版本的支持,但是就目前的开发形式来看,IE8的使用客户还是蛮多的,最近有个项目要求尽量 ...
随机推荐
- 跟着刚哥梳理java知识点——数组(七)
数组:数组是多个相同类型数据类型的集合,实现对这些数据的统一管理. 元素:数组中的元素可以是任何数据类型,包括基本数据类型和引用类型. 特点:属于引用类型,数组型数据是对象object,数组中的每个元 ...
- 介绍三个Android支持库控件:TabLayout+ViewPager+RecyclerView
本文主要介绍如下三个Android支持库控件的配合使用: TabLayout:android.support.design.widget.TabLayout ViewPager:android.sup ...
- 关于css解决俩边等高的问题
前段时间公司需哦一个后台管理系统,左侧是导航栏,右侧是content区域.然厚刚开始用的是js 去控制的,但是当页面的椰蓉过长的时候,有与js单线程,加载比较慢,就会有那么一个过程,查找了很多的方法都 ...
- 用ElasticSearch搭建自己的搜索和分析引擎
作者:robben,腾讯高级工程师 商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处. 导语:互联网产品中的检索功能随处可见.当你的项目规模是百度大搜|商搜或者微信公众号搜索这种体量的时候 ...
- php常用的优化手段
由于工作码成狗,抽闲整理了下内容,以下是网上流传比较广泛的30种SQL查询语句优化方法: 1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描. ...
- Docker aufs存储驱动layer、diff、mnt目录的区别
Docker基础信息 首先,先查询Docker使用的后端存储.使用命令docker info,主要关注Storage Driver相关的部分. $ docker info ... Server Ver ...
- 求解释一个蛋疼的bug
大婶儿们出来解决个问题,看看有碰见过的没 截图中的 if (order.EShopOrder_PayStatus == 0 && order.EShopOrder_Status == ...
- 【转】JDBC学习笔记(6)——获取自动生成的主键值&处理Blob&数据库事务处理
转自:http://www.cnblogs.com/ysw-go/ 获取数据库自动生成的主键 我们这里只是为了了解具体的实现步骤:我们在插入数据的时候,经常会需要获取我们插入的这一行数据对应的主键值. ...
- Docker改名为Moby了吗?
背景 在DockerCon17上,Docker发布了两个新的开源项目LinuxKit和Moby.而原来在Github上托管的docker也随着PR #32691的合入正式变为Moby.这究竟是什么情况 ...
- (二)java多线程之synchronized
本人邮箱: kco1989@qq.com 欢迎转载,转载请注明网址 http://blog.csdn.net/tianshi_kco github: https://github.com/kco198 ...