锋利的 jQuery 学习笔记
一、选择器:
:eq() - 选取带有指定 index 值的元素
,从0开始计数
var $li = $( ‘ul li : eq(1)’ ); //获取当前 ul 节点里第2个 li 节点
var li_txt = $li.text(); //获取文本内容
alert( li_txt ); // 打印文本内容
高级选择器: | |
---|---|
get() | 方法获取由选择器指定的 DOM 元素。$().get(2) |
find() | jq提供的一个等价的后代选择器。(子选择器+孙选择器集合) |
chidren() |
等价子选择器。(子选择器) 同 #div > p 的形式,从右往左匹配执行
|
prev() |
同一个同级 的上一个节点元素,同next()相反是后一个。
|
siblings()
|
上下同级的所有元素,prev() 和 nextAll() 的简化, |
选择器如果不传参,则就相当于传递了 * 号(全局),会造成性能浪费,所以最好带参数。 |
$(“div”).find(".p").addClass(“wang”)
查找 div中的子元素,且子元素的class有p,给这个子元素添加wang的class
$('#box').find('p')
- #box下的所有p标签
执行的速度是最快 的,会使用getElementById() - 对应 #box、ByName、ByTagName - 对应 p 和 querySelectorAll() - 执行css样式;
如果一开始对`$(’#box’)进行赋值,那么jq 就对其变量进行缓存,速度会更快:
var box = $(’#box’);
var p = box.find(‘p’);
//get() 返回原生的 document节点
$(function() {//if() 的话返回值就是 true 或者 falseif($('#box').get(0)) { //如果$('#box').get(0) / (第一个box)值存在,就执行下面的代码$('#box').css('color','red');}
})
$(’ #box .pull-left ') - 选择器越复杂,字符串解析就越慢
#box > p 高级选择器在ie6上是不支持。
二、jQuery 过滤选择器 === css伪类选择符(器),可以做到兼容 ie6~8 :
选择器的例子:地址
jquery提供的常用选择器的专用四个方法:
方法: | |
---|---|
$('li)').eq(-2) —— 倒数第二个li,负数没有0,从1开始。
|
$('li)').last()'
|
$('li)').first()
|
$('li)').not('.red')
|
$(‘li:nth-child(3n)’) - 每隔3倍显示,3、6、9 。3n+1 - 3倍的第四个显示,4、7、10,这里的3n也就是中间少两个
/*
匿名函数中的 $(this) 就等于 执行中的 $('.red') 本身,因为扩展性会更好。
*/alert($('.red').is(function() {return $(this)
}))/*
用for来打印对象数组
*/
var box = $('div').css(['color','width','height']);
for (var i in box) {alert(i[0]); // 返回color
}/*
$each() 可以遍历原生态的javascript对象数组,代替for
也可以遍历 jquery 对象数组
*/
var box = $('div').css(['color','width','height']);
$each(box,function(attr,value) {alert(attr + ':' value) // attr 拿到数组的属性名,value 拿到具体的属性值
})
//遍历jq数组:
$('div').$each(function(index,element) {alert(index + ':' element) //index 为索引,element为dom
})
三、添加calss类:
利用toggleClass 添加 / 删除 class
$('div').click(function() {$(this).toggleClass(function() {// 局部变量if ($(this).hasClass('red')) {$(this).removeClass('red');return 'green';} else {$(this).removeClass('green');return 'red';}})
})
jq绑定事件:
bind(type,[data],fn): 可以传递三个参数,type - 事件名称,data-可选,传递额外数据,fn - 处理函数
// 通过对象键值对 绑定多个参数
$('input').bind({// mouseout - 键,冒号逗号分隔'mouseout': function() {alert('移出');},'mouseover': function() {alert('移入');}
})//删除事件
$('input').bind('click',fn1); //绑定函数
$('input').bind('click',fn2);
function fn1() {alert('fn1')
}
function fn2() {alert('fn2')
}$('input').unbind('click',fn2); // 删除绑定了click事件的fn2//over 会触发子节点,而enter则不会触发
$('div').mouseover(function() {$('strong').html(function(index,value) { //index为索引值return value + '1'})
})
2、查找属性节点
atrr()方法 - 设置或返回被选元素的属性值
var $para = $(’ p ‘); // 获取到 p节点
var p_txt = $para.atrr(’ title ‘); // 获取到 p节点属性title
alert(’ p_txt '); // 打印title值
if()方法
- is(’:visible’) 如果内容显示
补充:
$(this).addClass(‘active’); 为.head 添加类名
content.addClass(′active′);为变量为content.addClass('active'); 为变量为content.addClass(′active′);为变量为content添加类名;removeClass() 删除类名
3、在javascript代码中,通常使用window.onload 方法,而在jQuery中,$(document).ready()方法使用最常见;
执行机制:
1、window.onload 是在网页中所有的元素完全加载到浏览器后才执行,即js此时才可以访问网页中的任何元素;
2、(document).ready()则完全可以在DOM完全就绪时即被调用;3、(document).ready() 则完全可以在DOM完全就绪时即被调用; 3、(document).ready()则完全可以在DOM完全就绪时即被调用;3、(windowt).load() 方法会在所有内容加载完毕后触发,如果处理函数绑定在元素上,则会在元素的内容加载完毕后触发;
4、事件绑定:bind()方法
可以对匹配元素进行特定事件的绑定;
适用单个切换:
$(function(){$('.head').bind('click', function() {var $content = $('.pp'); //找到要隐藏的元素并给它定义一个局部变量$contentif($content.is(':visible')) {$content.hide();}else {$content.show();}})
})<p class="head">如果你点我,pp就会消失。</p>
<p class="pp">继续点我!</p>
锋利的 jQuery 学习笔记相关推荐
- 锋利的JQuery学习笔记01
1. JQuery的链式操作风格 <script type="text/javascript"> //等待dom元素加载完毕. $(document).ready(fu ...
- 锋利的jQuery学习笔记(4)-DOM操作
1. DOM操作的分类: DOM Core:JavaScript中的getElementByID,getElementByTagName,getAttribute,setAttribute等方法都是其 ...
- jQuery学习笔记--目录
jQuery学习笔记--Helloworld jQuery学习笔记--DOM对象和jQuery对象 jQuery学习笔记--jQuery选择器 jQuery学习笔记--jQuery的DOM操作 jQu ...
- jQuery学习笔记之DOM操作、事件绑定(2)
jQuery学习笔记之DOM操作.事件绑定(2) --------------------学习目录------------------------ 4.DOM操作 5.事件绑定 源码地址: https ...
- 【转载】jQuery学习笔记
jQuery学习笔记 1 基础 HTML :一个人的裸体,是一个人的物质基础,是一个结构. CSS :一个人的漂亮外衣,使一个人看起来不是那么原始,修饰了一个人. JavaScript :一个人的灵魂 ...
- jQuery学习笔记:Ajax(二)
接上篇"jQuery学习笔记:Ajax(一)". 3.jQuery.get(url,[data],[callback],[type])通过远程 HTTP GET 请求载入信息. 这 ...
- jQuery学习笔记02:核心部分
jQuery学习笔记:核心部分 一.$(expr) 1.说明 $(expr) 该函数通过CSS选择器.XPath或html代码来匹配目标元素 参数:expr(字符串,一个查询表达式或一段html字符串 ...
- jQuery学习笔记01:初试jQuery
jQuery学习笔记01:初试jQuery 一.下载jQuery jQuery官网:https://jquery.com 二.案例演示--Welcome to jQuery World 1.在WebS ...
- jQuery学习笔记(二)
jQuery学习笔记(二) 二.管理jQuery包装集 1.创建新的元素 使用HTML DOM 创建元素 var select=document.createElement("select& ...
- javaweb(03) jQuery学习笔记
javaweb(03) jQuery学习笔记 jQuery介绍 什么是jQuery jQuery,顾名思义,也就是 JavaScript 和查询(Query),它就是辅助 JavaScript 开发的 ...
最新文章
- 那些年,我们一起追过的恺明大神!
- 浏览器对象模型:window对象2
- 浏览器事件循环与node事件循环
- 计算机网络基础 — 网络设备 — 以太交换机(Switch)
- ubuntu 如何在任意终端不填加./就可以执行文件类似ls cd cp
- [Java 基础]接口
- python单位根检验看结果_Python ADF 单位根检验 如何查看结果的实现
- 深入jar包:从jar包中读取资源文件
- 策略模式应用场景_朱迪 | 混合研究方法的方法论、研究策略及应用:以消费模式研究为例...
- 简述MAC地址与IP地址的关系
- AMOS分析技术:路径分析的非递归模型
- 物联网之有线通信技术之短距离的现场总线
- 在手机相册(ios设备相册)中创建相册
- AlexeyAB中训练命令行中 -map 以及 -dont_show
- mac idea Tomcat 内网映射解决方案
- FitLine+直线拟合+C++
- timer延迟1us_C# 高精度延迟代码执行时间(us/ns)
- win10笔记本亮度无法调整,亮度设置消失了
- xsstrike安装(仅供参考)
- 可视化损失函数空间三维图