【兼容IE8以下没办法】【虽不是Modern Web(不建议直接操作DOM)但也是一大利器】

个人推荐书【CSS 网站实录】【JavaScript Dom 编程艺术】【刚开始学不能太纠结机制机理原理因为工具是被设计出来用的】【保持简单简洁简约的心把活干出来】

seconds 是一种极限追求,在实际开发当中 需要迅速找到自己需要的内容。(用chm手册找就好了,用的熟自然快)

………………………………………………

padding  上下

padding  上右下左 正好顺时针

…………………………………………………………

浏览器中的 js 很关键的事件 =》 windows.onload = function(){/* code here */}

jQ 让我们不需要 在上面那个事件上纠结 =》 $(document).ready(function(){})

$('无论嘛选择器').html('内容').css('样式');    // 【幸福 o(* ̄▽ ̄*)o 人生从此开始】

………………………………………………………………………………………………

jQ 对象和 DOM 对象 转换 =》 $('div').get(0);

DOM 对象和 jQ 对象 转换 =》 $(div);   //包装进来即可。

………………………………………………………………………………………………

选择器基本和 CSS 通用。

就是注意一下,

> 直接子元素

+ 相邻元素

~ 相邻或者不相邻 强调同级元素

……………………………………………………………………………………………………

jQ筛选器

:first

:last

:even offset 0

:odd

:eq offset 0

:gt

:lt offset 0  右边是开区间的

input:not(checked) 不太明白。

内容筛选器

:contains('text')

:has('selector')

:empty 没有子元素(属性节点、文本节点)的空节点

:parent 包含子元素的节点     a:parent  先选a再筛选。

可见性筛选器

:hidden   界定 display:none   type="hidden"(隐藏域)

:visible  界定 width=0;height=0(要除了:hidden以外这样去理解)、visibility:hidden;opacity:0(因为仍占据空间)

属性筛选器

[attr]

[attr='val']

[attr|='val']  匹配val  比如要匹配 -  那么匹配结果也包含这种 ------------

[attr~='val'] 匹配以空格为分隔符的部分  比如要匹配 a_b (以_下划线代表a和b之间有空格)那么通过~=就可以匹配 a部分或者b部分,只要是空格分隔的。

[attr^='val']

[attr$='val']

[attr*='val']

[attr!='val']

子元素筛选器  这种筛选器实际都是往父级去匹配 (自下而上),元素后面的筛选器就是一种修饰。

:first-child 可以为每个父级元素(区别于:first只匹配一次)匹配第一个    a:first-child   这得理解为以a作为第一个孩子的元素都给匹配上。

:last-child

:only-child  按照每个父级元素匹配一个 a:only-child 理解为 只有以a作为唯一的孩子。

:nth-child(nValue) 按照每个父级元素匹配 从上往下数n个  offset=1

:nth-last-child(nValue) 从下往上数n个

表单元素选择器

:input 选的所有表单控件(特别包括textarea、select、button)

:text

:password

:radio     $(":radio").attr("checked",true)

:checkbox

:submit

:reset

:file 文件上传

:button

表单元素筛选器

:enabled

:disabled 禁用的元素

:checked

:selected

对象上下文 this

$(this)

选择器最佳实践

// 实际上用文本去找不太好,内容选择器效率是最差的
// 按照结构 胜过 硬编码 , id是最好的。 
// $("h3:contains('男装')+.tag p:first-child:contains('第一类')")

$("#menu_con div.tag dd > p:first-child").css('color','#9932CC');

……………………………………………………………………………………………………

jQ工具箱

jQ attr() 和 removeAttr()

获得值 attr('属性')

通过设置回调函数把原来的值和新的值联系起来 attr(‘属性’,function(i,val){/* code */})

text() 单纯获取内容文本 合集

text(func(i,newVal){}) 拼接原来的值和新的值。

html() 获取内容包含结构(像块级 block)

val() 专门用在表单元素 获取value | 修改value

addClass() 添加样式

removeClass() 删除样式

toggleClass()  第一次等于 addClass 第二次等于 removeClass ,以此来实现隔行变换。

// index 匹配集合的索引
$('div').addClass(function(index,className){ if (-1 !== className.indexOf("oldclass")){
$(this).addClass('newClass')
}
});

css() 获取样式    /   addClass的优先级较低。

细节1 background-color:blue; => rgb(0, 0, 255)

细节2 //字体大小都会转化成统px大小 em=>px

css(['width','height'])  传入数组获取宽度和高度。

// 以旧值作参考,修改旧值
css("width",function(index,value){
//value带单位,先分解
value = value.split('px');
//返回一个新的值,在原有的值上,增加50px
return (Number(value[0]) + 50) + value[1];
})
// 设置多个样式
css({
'font-size' :"15px",
"background-color" :"#40E0D0",
"border" :"1px solid red"
})

………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………

元素数据存储

$.data(element,key,value)

element.data(key,value)   //官方推荐

………………………………………………………………………………………………………………………………………………………………

DOM

$("<div class='right'><div class='aaron'>动态创建DIV元素节点</div></div>")

prepend() 插入前置内容

prependTo() 前置内容插入到

append()  插入追加内容

appendTo() 追加内容插入到

before() 批量往前插入元素

after() 批量往后插入元素

insertAfter()  元素往后插入到

insertBefore()  元素往前插入到

empty() 清空内容 除了自己

remove() 把自己从页面清掉 但绑定的事件丢失。

remove(":contains('3')")    ==    filter(":contains('3')").remove()

detach() 仅从页面移除元素 而不是内存中移除 ,所以绑定的事件、元素内容都将得以保留。

clone() 浅拷贝节点 不拷贝事件

clone(true) 深拷贝节点 拷贝事件

Selector replaceWith()

Content replaceAll()

wrap() 外部包裹

unwrap

wrapAll() 粗暴包裹

wrapAll(func) 逐一批量包裹

wrapInner() 内部包裹

…………………………………………………………………………………………………………………………………………………………

children() 不含祖辈关系 只找父子

children(筛选)

find(筛选)

parent(筛选)

parents() 所有长辈  然后可以二次筛选

closest() 按条件查找至多一个长辈

next(筛选)

prev(筛选)

siblings() 同辈

add()

each(function(index,element){}) 遍历所有

…………………………………………………………………………………………………………………………………………

事件

Learn jQuery in y seconds的更多相关文章

  1. Learn clojure in Y minutes

    Learn X in Y minutes Where X=clojure Get the code: learnclojure.clj Clojure is a Lisp family languag ...

  2. Learn X in Y minutes(python一页纸代码)

    一篇非常好的文章,解释了python基本语法的方方面面: # Single line comments start with a hash. """ Multiline ...

  3. Learn X in Y minutes Where X=c++

    http://learnxinyminutes.com/docs/c++/ C++ is a systems programming language that, according to its i ...

  4. jQuery插件开发精品教程,让你的jQuery提升一个台阶

    要说jQuery 最成功的地方,我认为是它的可扩展性吸引了众多开发者为其开发插件,从而建立起了一个生态系统.这好比大公司们争相做平台一样,得平台者得天下.苹果,微软,谷歌等巨头,都有各自的平台及生态圈 ...

  5. 教你开发jQuery插件(转)

    教你开发jQuery插件(转) 阅读目录 基本方法 支持链式调用 让插件接收参数 面向对象的插件开发 关于命名空间 关于变量定义及命名 压缩的好处 工具 GitHub Service Hook 原文: ...

  6. jquery插件开发继承了jQuery高级编程思路

    要说jQuery 最成功的地方,我认为是它的可扩展性吸引了众多开发者为其开发插件,从而建立起了一个生态系统.这好比大公司们争相做平台一样,得平台者得天下.苹果,微软,谷歌等巨头,都有各自的平台及生态圈 ...

  7. jquery学习笔记---jquery插件开发

    http://www.cnblogs.com/Wayou/p/jquery_plugin_tutorial.html jquery插件开发:http://www.cnblogs.com/damonla ...

  8. jQuery 使用 jQuery UI 部件工厂编写带状态的插件(翻译)

    首先,我们要创建一个progress bar,它只允许我们简单的设置进度值.正如我们接下来将要看到的,我们需要通过调用 jQuery.widget 及其两个参数来实现这一操作,这两个参数分别是:将要创 ...

  9. (转)jQuery插件开发模式

    要说jQuery 最成功的地方,我认为是它的可扩展性吸引了众多开发者为其开发插件,从而建立起了一个生态系统.这好比大公司们争相做平台一样,得平台者得天下.苹果,微软,谷歌等巨头,都有各自的平台及生态圈 ...

随机推荐

  1. NOIP2011Mayan游戏(模拟)

    Mayan puzzle是最近流行起来的一个游戏.游戏界面是一个77 行\times 5×5列的棋盘,上面堆放着一些方块,方块不能悬空堆放,即方块必须放在最下面一行,或者放在其他方块之上.游戏通关是指 ...

  2. centos7下mysql半同步复制原理安装测试详解

    原理简介: 在MySQL5.5之前,MySQL的复制其实都是异步复制(见下图),主库和从库的数据之间存在一定的延迟,这样存在一个隐患:当在主库上写入一个事务并提交成功,而从库尚未得到主库推送的BinL ...

  3. 20165223 week2测试补交与总结

    测试题二 题目: 在Ubuntu或Windows命令行中 建如下目录结构 Hello.java的内容见附件package isxxxx; (xxxx替换为你的四位学号) 编译运行Hello.java ...

  4. JVM内存模型你只要看这一篇就够了

    JVM内存模型你只要看这一篇就够了 我是一只孤傲的鱼鹰 让我们不厌其烦的从内存模型开始说起:作为一般人需要了解到的,JVM的内存区域可以被分为:线程栈,堆,静态方法区(实际上还有更多功能的区域,并且这 ...

  5. CF Educational Codeforces Round 57划水记

    因为是unrated于是就叫划水记了,而且本场也就用了1h左右. A.B:划水去了,没做 C:大水题,根据初三课本中圆的知识,可以把角度化成弧长,而这是正多边形,所以又可以化成边数,于是假设读入为a, ...

  6. Python之函数的本质、闭包、装饰器

    函数名的本质 函数名本质上就是函数的内存地址. 1.可以赋值给其他变量,被引用 def func(): print('in func') f = func print(f) 2.可以被当作容器类型的元 ...

  7. bcftools或vcftools提取指定区段的vcf文件(extract specified position )

    下载安装bcftools 见如下命令: bcftools filter 1000Genomes.vcf.gz --regions 9:4700000-4800000 > 4700000-4800 ...

  8. 斯坦福大学公开课机器学习:advice for applying machine learning | diagnosing bias vs. variance(机器学习:诊断偏差和方差问题)

    当我们运行一个学习算法时,如果这个算法的表现不理想,那么有两种原因导致:要么偏差比较大.要么方差比较大.换句话说,要么是欠拟合.要么是过拟合.那么这两种情况,哪个和偏差有关.哪个和方差有关,或者是不是 ...

  9. 第三十二节,使用谷歌Object Detection API进行目标检测、训练新的模型(使用VOC 2012数据集)

    前面已经介绍了几种经典的目标检测算法,光学习理论不实践的效果并不大,这里我们使用谷歌的开源框架来实现目标检测.至于为什么不去自己实现呢?主要是因为自己实现比较麻烦,而且调参比较麻烦,我们直接利用别人的 ...

  10. re-download dependencies and 无法下载jar 的解决

    Re-download dependencies and sync project (requires network) 其实就是修改gradle 的path 路径: