JQUERY-修改-API-事件绑定
正课:
1. 修改:
2. 按节点间关系查找:
3. 添加,删除,克隆,替换:
4. 事件绑定:
1. 修改:
内容:
html片段: .html(["html片段"]) .innerHTML
text文本: .text(["文本"]) .textContent
表单元素值: .val(["值"]) .value
属性:
HTML标准属性:
$elem.attr("属性名"[,"值"])
代替: setAttribute() getAttribute();
简写: 可用一个attr,修改多个属性值:
$elem.attr({
属性名: "值",
... : ...
})
状态属性:
$elem.prop("状态名"[,true/false])
attr vs prop
本质: attr: 读取HTML中开始标签中的任意属性
prop: 读取内存对象中的属性
自定义扩展属性:
$elem.data("自定义扩展属性名"[,"值"])
//.dataset
样式:
$elem.css("css属性名","属性值")
强调: 单个数值,不用加px单位
修改时: 等效于elem.style.css属性
获取时: 等效于getComputedStyle()
简写: 同时修改多个css属性:
$elem.css({
css属性名:"值",
... : ...
})
问题: 代码繁琐
解决: 用class批量应用/撤销样式
$elem.addClass("class");
$elem.removeClass("class");
$elem.hasClass("class");
$elem.toggleClass("class")
等效: if(hasClass()) removeClass() else addClass()
2. 按节点间关系查找:
2大类关系:
1. 父子:
.parent() .parentNode
.children(["selector"]) .children
.find("selector") 在所有后代中查找符合条件的
.children().first() .firstElementChild
.children(":first")
.children(":first-child")
.children().last() .lastElemenChild
.children(":last")
.children(":last-child")
2. 兄弟:
.prev() .previousElementSibling
.prevAll(["selector"])
.next() .nextElementSibling
.nextAll(["selector"])
.siblings(["selector"])
3. 添加,删除,替换,克隆:
添加: 2步:
1. 用HTML代码片段创建新元素:
var $elem=$("html片段")
2. 将新元素添加到DOM树
$parent.append ($elem) //返回父元素,无法继续对新元素操作
$elem.appendTo("parent") //返回新元素,可继续对新元素操作
$parent.prepend($elem)
$elem.prependTo($parent)
$child.before($elem)
$child.after($elem)
简化: $parent.append/prepend("html")
删除: $elem.remove();
替换: $旧.replaceWith($新) //$旧
$新.replaceAll($旧) //$新
克隆: $elem.clone();
默认: 浅克隆: 只复制属性和样式,不复制行为
深克隆: 即复制属性和样式,又复制行为
$elem.clone(true)
4. 事件绑定:
鄙视: jquery中共有几种事件绑定方式,有什么不同?
DOM: .addEventListener();
.removeEventListener();
1. .bind()/.unbind()
.unbind() 3种重载:
.unbind("事件名",处理函数) 移除指定事件上的一个指定的处理函数
.unbind("事件名") 移除指定事件上绑定的所有处理函数
.unbind() 移除所有事件上的所有处理函数
2. .one() 绑定后,只触发一次处理函数,触发后自动解绑
3. .delegate() 事件委托
其实就是利用冒泡的简化版
$parent.delegate("selector","事件",function(){
var $tar=$(this);
})
.undelegate(...)
4. 废弃: .live/die() 废弃
5. .on()/off()
2个重载:
1. 代替bind, 2个参数: .on("事件名",function(){ ... })
2. 代替delegate, 3个参数:
.on("事件名","选择器",function(){ ... })
6. 更简化: .事件名()
JQUERY-修改-API-事件绑定的更多相关文章
- jQuery中的事件绑定方法
在jQuery中,事件绑定方法大致有四种:bind(),live(), delegate(),和on(). 那么在工作中应该如何选择呢?首先要了解四种方法的区别和各自的特点. 在了解这些之前,首先要知 ...
- 关于jQuery新的事件绑定机制on()的使用技巧
关于jQuery新的事件绑定机制on()的使用技巧 http://www.jb51.net/article/36064.htm 本篇文章介绍了,关于jQuery新的事件绑定机制on()的使用技巧.需要 ...
- Jquery中的事件绑定$("#btn").bind("click",function(){ })
Jquery中的事件绑定:$("#btn").bind("click",function(){ }) 由于每次都这么调用太麻烦,所以jquery就用$(&qu ...
- jQuery 中的事件绑定
一.事件概念 和数据库中的触发器一样,当操作了数据的时候会引发对应的触发器程序执行 一样,JS 中的事件就是对用户特定的行为作出相应的响应的过程,其实上就是浏览器 监听到用户的某些行为的时候会执行对应 ...
- JQuery实现click事件绑定与触发方法分析
原生JS通过什么方法绑定click事件? 原生js有一下三种方法为DOM对象绑定click事件, 第一种,在html中添加 onclick属性,在此属性中添加要绑定的事件函数,如下, 这种方法为htm ...
- jQuery 新添加元素事件绑定无效
jQuery中事件绑定,大多使用on就足够了. 但是对于新添加的元素 on 的绑定事件 会不起作用. 因为 append 中的 节点是在整个文档加载之后才添加的,页面并不会为未来的元素初始化添加点击事 ...
- jQuery插件 -- 动态事件绑定插件jquery.livequery.js
http://blog.csdn.net/zzq58157383/article/details/7721974 动态事件绑定插件livequery, 可以利用它给相应的DOM元素注册事件或者触发回调 ...
- jQuery新的事件绑定机制on()
浏览jQuery的deprecated列表,发现live()和die()在里面了,赶紧看了一下,发现从jQuery1.7开始,jQuery引入了全新的事件绑定机制,on()和off()两个函数统一处理 ...
- jQuery三种事件绑定方式.bind(),.live(),.delegate()
.bind(), .live(), 和 .delegate()之间的区别并不明显.但是理解它们的不同之处有助于写出更简洁的代码,并防止我们的交互程序中出现没有预料到的bug. 基础 DOM树 首先,图 ...
- 用jQuery.delegate()将事件绑定在父元素上面
1.先看看官方的示例: <html> <head> <script type="text/javascript" src="/jquery/ ...
随机推荐
- js:获取事件源的兼容性写法
XXX.onclick = function(e){ var event = e || window.event; var target = event.target || event.srvElem ...
- Tensorflow卷积神经网络[转]
Tensorflow卷积神经网络 卷积神经网络(Convolutional Neural Network, CNN)是一种前馈神经网络, 在计算机视觉等领域被广泛应用. 本文将简单介绍其原理并分析Te ...
- 解决laravel使用QQ邮箱发邮件失败
在 laravel 中使用 QQ 发送邮件的时候莫名其妙的出现了如下错误:Connection could not be established with host smtp.exmail.qq.co ...
- 用 ghostscript 转化PDF文件为图片 的参数设置
example: gswin32 -dSAFER -dBATCH -dNOPAUSE -r300 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -sDEVICE=jp ...
- 解决phpstudy在 cmd窗口输出 php5 中文显示乱码问题
xampp没事,但切换到phpstudy后发现echo中文变成了乱码 找到解决办法:在cmd里输入 chcp 65001 命令 切换字符编码 chcp 65001 就是换成UTF-8 chcp 93 ...
- VS 提示对象被多次指定;已忽略多余的指定
最近有一个工程编译老是出现这个问题,网上的解决方案说是工程目录下有同名的源文件,所以编译出了同名的obj.然而我检查了一下并没有.经尝试,把所有文件从项目中移除再重新添加进来就行了..应该是因为我反复 ...
- java中null是什么,以及使用中要注意的事项
1.null既不是对象也不是一种类型,它仅是一种特殊的值,你可以将其赋予任何引用类型,你也可以将null转化成任何类型,例如: Integer i=null; Float f=null; String ...
- 我们一起踩过的坑----react(antd)(二)
1.antd Upload默认值问题 需求是这样的,后台若没有图片默认值,则只有上传按钮,且只能上传一张图片:若有默认值,则显示默认头像图片, 可删除,删除之后有且只能添加一张图片,没有删除默认图片时 ...
- Linux 使用nmcli配置网络
Linux 使用nmcli配置网络 前提: 在虚拟机中添加一张桥接模式的网卡,如果是VirtualBox虚拟机中要shutdown才能添加. 1.启动NetworkManager工具,安装nmcli命 ...
- 4k/1k边界问题
AXI总线,burst操作,不能跨4K边界问题! 在Master_A设计中,假如Master_A只操作一块64M SDRAM(此Master_A不操作任何其他Slave),读写的数据量远远大于4K.因 ...