正课:

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-事件绑定的更多相关文章

  1. jQuery中的事件绑定方法

    在jQuery中,事件绑定方法大致有四种:bind(),live(), delegate(),和on(). 那么在工作中应该如何选择呢?首先要了解四种方法的区别和各自的特点. 在了解这些之前,首先要知 ...

  2. 关于jQuery新的事件绑定机制on()的使用技巧

    关于jQuery新的事件绑定机制on()的使用技巧 http://www.jb51.net/article/36064.htm 本篇文章介绍了,关于jQuery新的事件绑定机制on()的使用技巧.需要 ...

  3. Jquery中的事件绑定$("#btn").bind("click",function(){ })

    Jquery中的事件绑定:$("#btn").bind("click",function(){  }) 由于每次都这么调用太麻烦,所以jquery就用$(&qu ...

  4. jQuery 中的事件绑定

    一.事件概念 和数据库中的触发器一样,当操作了数据的时候会引发对应的触发器程序执行 一样,JS 中的事件就是对用户特定的行为作出相应的响应的过程,其实上就是浏览器 监听到用户的某些行为的时候会执行对应 ...

  5. JQuery实现click事件绑定与触发方法分析

    原生JS通过什么方法绑定click事件? 原生js有一下三种方法为DOM对象绑定click事件, 第一种,在html中添加 onclick属性,在此属性中添加要绑定的事件函数,如下, 这种方法为htm ...

  6. jQuery 新添加元素事件绑定无效

    jQuery中事件绑定,大多使用on就足够了. 但是对于新添加的元素 on 的绑定事件 会不起作用. 因为 append 中的 节点是在整个文档加载之后才添加的,页面并不会为未来的元素初始化添加点击事 ...

  7. jQuery插件 -- 动态事件绑定插件jquery.livequery.js

    http://blog.csdn.net/zzq58157383/article/details/7721974 动态事件绑定插件livequery, 可以利用它给相应的DOM元素注册事件或者触发回调 ...

  8. jQuery新的事件绑定机制on()

    浏览jQuery的deprecated列表,发现live()和die()在里面了,赶紧看了一下,发现从jQuery1.7开始,jQuery引入了全新的事件绑定机制,on()和off()两个函数统一处理 ...

  9. jQuery三种事件绑定方式.bind(),.live(),.delegate()

    .bind(), .live(), 和 .delegate()之间的区别并不明显.但是理解它们的不同之处有助于写出更简洁的代码,并防止我们的交互程序中出现没有预料到的bug. 基础 DOM树 首先,图 ...

  10. 用jQuery.delegate()将事件绑定在父元素上面

    1.先看看官方的示例: <html> <head> <script type="text/javascript" src="/jquery/ ...

随机推荐

  1. react 和 seamless-immutable

    在 react 中,默认改变组件状态或者属性,是会整个组件全部重新渲染,但是 如果只是修改一个地方,而全部渲染,就会浪费资源,大项目中会造成性能问题 shouldComponentUpdate   s ...

  2. 记录小白实习生的HashMap源码 put元素 的学习和一些疑问

    首先看HashMap存储结构 transient Node<K,V>[] table; static class Node<K,V> implements Map.Entry& ...

  3. Nexus构建

    参考文章: Maven远程仓库搭建与配置(https://my.oschina.net/u/1455528/blog/637063) Maven仓库—Nexus环境搭建及简单介绍(http://blo ...

  4. Java源码分析:关于 HashMap 1.8 的重大更新(转载)

    http://blog.csdn.net/carson_ho/article/details/79373134 前言 HashMap 在 Java 和 Android 开发中非常常见 而HashMap ...

  5. Prometheus

    官方网址:https://prometheus.io/ GitHub网址:https://github.com/prometheus/prometheus 软件下载地址:https://prometh ...

  6. EFM32之GPIO

    配置时钟: void CMU_ClockEnable(CMU_Clock_TypeDef clock, bool enable) CMU_ClockEnable(cmuClock_HFPER, tru ...

  7. ISO 2501 quality model division 学习笔记

    作为一个测试,学习质量模型,能够帮你 在测试设计的时候,从多个角度来思考测试用例的设计.而不仅仅是从 功能上, 同时 需要结合自己的产品,选择自己的侧重点,譬如我们公司的产品,安全性这一块 就比较小, ...

  8. 基于STM32F429+HAL库编写的定时器主从门控模式级联输出固定个数PWM脉冲的程序

    硬件设备   42步进电机,步进电机驱动器,正点原子F429开发板 开发软件    keil5,Cube 综述   一般要精准的控制电机,就要控制单片机的引脚输出指定个数的PWM波,有多种可实现的方法 ...

  9. 20175213吕正宏 MyCP(课下任务,必做)

    一.任务详情: 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.bin 用来把文本文件( ...

  10. express 内存溢出问题分析定位

    一.现象 1. 如下报错 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 1: n ...