jQuery学习笔记之DOM操作、事件绑定(2)

————————————————————学习目录————————————————————————

4.DOM操作

5.事件绑定

源码地址:

https://github.com/iyun/jQueryDemo.git

————————————————————学习目录————————————————————————

4.DOM操作(节点增删改查)

节点查找:节点分为三种类型:元素节点、属性节点、文本节点

创建节点

创建元素节点

使用 jQuery 的工厂函数 $(HTML) 。该工厂函数会根据传入的 html 标记字符串创建一个 DOM 对象, 并把这个 DOM 对象包装成一个 jQuery 对象返回。

当创建单个元素时, 需注意闭合标签。

var $option = $("<option></option>");
创建文本节点
创建元素节点后,使用text()方法来设置其节点的文本内容。
$option.text("北京");
    创建元素节点时,直接将其节点的文本内容插入其中。
var $option = $("<option>北京</option>");
创建属性节点
创建元素节点后,使用attr()方法来设置其节点的属性。
$option.attr("value","北京");
    创建元素节点时,直接将其节点的属性插入其中。
var $option = $("<option value="北京">北京</option>");

插入节点

内部插入节点

append(content) :向每个匹配的元素的内部的结尾处追加内容

appendTo(content) :将每个匹配的元素追加到指定的元素中的内部结尾处

prepend(content):向每个匹配的元素的内部的开始处插入内容

prependTo(content) :将每个匹配的元素插入到指定的元素内部的开始处外部插入节点

after(content) :在每个匹配的元素之后插入内容

before(content):在每个匹配的元素之前插入内容

insertAfter(content):把所有匹配的元素插入到另一个、指定的元素元素集合的后面

insertBefore(content) :把所有匹配的元素插入到另一个、指定的元素元素集合的前面

删除节点

remove(): 从 DOM 中删除所有匹配的元素, 传入的参数用于根据 jQuery 表达式来筛选元素. 当某个节点用 remove() 方法删除后, 该节点所包含的所有后代节点将被同时删除. 这个方法的返回值是一个指向已被删除的节点的引用。

empty(): 清空节点 – 清空元素中的所有后代节点(不包含属性节点)。

复制节点

clone(): 克隆匹配的 DOM 元素, 返回值为克隆后的副本. 但此时复制的新节点不具有任何行为.

clone(true): 复制元素的同时也复制元素中的的事件

        <button>保存</button>
<p>段落</p> $("button").click(function(){
alert("点击按钮");
}); //克隆节点,不克隆事件
$("button").clone().appendTo("p"); //克隆节点,克隆事件
$("button").clone(true).appendTo("p");

替换节点

replaceWith(): 将所有匹配的元素都替换为指定的 HTML 或 DOM 元素

replaceAll(): 颠倒了的 replaceWith() 方法.

注意: 若在替换之前, 已经在元素上绑定了事件, 替换后原先绑定的事件会与原先的元素一起消失

            //<p>段落</p>
//方式一
$("p").replaceWith("<button>登陆</button>");
//方式二
$("<button>登陆</button>").replaceAll("p");

属性操作

attr(): 获取属性和设置属性。

当为该方法传递一个参数时, 即为某元素的获取指定属性。

当为该方法传递两个参数时, 即为某元素设置指定属性的值。

jQuery 中有很多方法都是一个函数实现获取和设置. 如: attr(), html(), text(), val(), height(), width(), css() 等。

removeAttr(“属性名”): 删除指定元素的指定属性

样式操作

获取 class 和设置 class :class 是元素的一个属性, 所以获取 class 和设置 class 都可以使用 attr() 方法来完成。

追加样式:addClass()

移除样式:removeClass() — 从匹配的元素中删除全部或指定的 class

切换样式:toggleClass() — 控制样式上的重复切换.如果类名存在则删除它, 如果类名不存在则添加它。

判断是否含有某个样式:hasClass() — 判断元素中是否含有某个 class, 如果有, 则返回 true; 否则返回 false。

遍历节点

取得匹配元素的所有子元素组成的集合: children(). 该方法只考虑子元素而不考虑任何后代元素.

取得匹配元素后面紧邻的同辈元素下一个元素:next();

取得匹配元素前面紧邻的同辈元素上一个元素:prev()

取得匹配元素前后所有的同辈元素: siblings()

在jQuery中还有很多遍历节点的方法,具体参看API帮助文档。

包裹节点

wrap()

        <strong title="jQuery">jQuery</strong>
<strong title="jQuery">jQuery</strong>
//jQuery代码如下:
$("strong").wrap("<b></b>"); //得到的结果如下
<b><strong title="jQuery">jQuery</strong></b>
<b><strong title="jQuery">jQuery</strong></b>
wrapAll()
        <strong title="jQuery">jQuery</strong>
<strong title="jQuery">jQuery</strong>
//jQuery代码如下:
$("strong").wrapAll("<b></b>"); //得到的结果如下
<b>
<strong title="jQuery">jQuery</strong>
<strong title="jQuery">jQuery</strong>
</b>
wrapInner()
        <strong title="jQuery">jQuery</strong>
//jQuery代码如下:
$("strong"). wrapInner("<b></b>"); //得到的结果如下
<strong title="jQuery"><b>jQuery</b></strong>

5.jQuery 中的事件

在页面加载完毕后, 浏览器会通过 JavaScript 为 DOM 元素添加事件.

在常规的 JavaScript 代码中, 通常使用 window.onload 方法, 在 jQuery 中使用$(document).ready() 方法.

面试题:

1.在js里面可以使用widow.onload= 当页面上面所有的元素加载完毕之后执行触发。

2.$(function(){}) == window.jQuery(document).ready(function());

两者的区别:

执行时机:window.onload它需要等待页面上面所有元素都加载完毕,包括图片,src=“”

$(function(){})只需要页面上面的dom元素绘制完毕之后就执行,不含图片或者第三方的连接地址…

事件绑定

我们除了可以直接为页面的元素增加事件,也可以利用bind()方法为页面元素来绑定事件。

语法:bind(type, [data], fn)

参数type:含有一个或多个事件类型的字符串。

提供可以绑定的事件有:blur, focus, focusin, focusout, load, resize, scroll, unload, click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, error。

参数data:作为event.data属性值传递给事件对象的额外数据对象。如{username:"雷"} json格式 alert(event.data.username);

参数fn:绑定到每个匹配元素的事件上面的处理函数。

事件解绑unbind

//浏览器提供一个对象用来调试,即控制台信息`console.info(event);`
常用:`mouseover mouseout`

jQuery学习笔记之DOM操作、事件绑定(2)的更多相关文章

  1. jQuery学习笔记(DOM操作)

    DOM操作的分类 一般来说,DOM操作分为3个方面,即DOM Core.HTML-DOM和CSS-DOM. 1. DOM Core DOM Core并不专属于JavaScript,任何一种支持DOM的 ...

  2. jQuery 学习笔记(三)——事件与应用

    页面载入时触发ready()事件 ready()事件类似于onLoad()事件.但前者仅仅要页面的DOM结构载入后便触发.而后者必须在页面所有元素载入成功才触发,ready()能够写多个,按顺序运行. ...

  3. jquery学习:选择器&dom操作

    分类; 1.基本选择器 1.标签选择器(元素选择器) *  语法:$("html标签名”) 获得所有匹配标签名称的元素 2.id选择器 *  语法:$("#id的属性值" ...

  4. jQuery学习笔记--JqGrid相关操作 方法列表(上)

    1.获得当前列表行数:$("#gridid").getGridParam("reccount"); 2.获取选中行数据(json):$("#gridi ...

  5. jQuery学习笔记(二)jQuery中DOM操作

    目录 DOM操作分类 jQuery中的各种DOM操作 查找节点 创建节点 删除节点 复制节点 替换节点 包裹节点 属性操作 样式操作 对HTML.文本和值的操作 遍历节点 CSS-DOM操作 小结 本 ...

  6. jQuery 学习笔记

    jQuery 学习笔记   一.jQuery概述    宗旨: Write Less, Do More.    基础知识:        1.符号$代替document.getElementById( ...

  7. jQuery学习笔记 - 基础知识扫盲入门篇

    jQuery学习笔记 - 基础知识扫盲入门篇 2013-06-16 18:42 by 全新时代, 11 阅读, 0 评论, 收藏, 编辑 1.为什么要使用jQuery? 提供了强大的功能函数解决浏览器 ...

  8. jQuery学习笔记(一):入门

      jQuery学习笔记(一):入门 一.JQuery是什么 JQuery是什么?始终是萦绕在我心中的一个问题: 借鉴网上同学们的总结,可以从以下几个方面观察. 不使用JQuery时获取DOM文本的操 ...

  9. jQuery学习笔记之Ajax用法详解

    这篇文章主要介绍了jQuery学习笔记之Ajax用法,结合实例形式较为详细的分析总结了jQuery中ajax的相关使用技巧,包括ajax请求.载入.处理.传递等,需要的朋友可以参考下 本文实例讲述了j ...

随机推荐

  1. exgcd扩展欧几里得求解的个数

    知识储备 扩展欧几里得定理 欧几里得定理 (未掌握的话请移步[扩展欧几里得]) 正题 设存在ax+by=gcd(a,b),求x,y.我们已经知道了用扩欧求解的方法是递归,终止条件是x==1,y==0: ...

  2. 【转载】Apache shutdown unexpectedly启动错误解决方法

    http://blog.csdn.net/dong123dddd/article/details/21372179 xampp启动时显示的错误为: 9:52:41  [Apache] Attempti ...

  3. selenium动作链

    简介 一般来说我们与页面的交互可以使用Webelement的方法来进行点击等操作. 但是,有时候我们需要一些更复杂的动作,类似于拖动,双击,长按等等. 这时候就需要用到我们的Action Chains ...

  4. linux的ulimit各种限制之深入分析

    一般可以通过ulimit命令或编辑/etc/security/limits.conf重新加载的方式使之生效 通过ulimit比较直接,但只在当前的session有效,limits.conf中可以根据用 ...

  5. ACDream - Chasing Girl

    先上题目: Chasing Girl Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) ...

  6. [TS-A1488][2013中国国家集训队第二次作业]魔法波[高斯消元]

    暴力直接解异或方程组,O(n^6)无法接受,那么我们考虑把格子分块,横着和竖着分别分为互不影响的块,这样因为障碍物最多不超过200个,那么块的个数最多为2*(800+200)=2000个,最后用bit ...

  7. centos7 yum源

    https://www.cnblogs.com/muyunren/p/7221505.html https://www.cnblogs.com/renpingsheng/p/7845096.html

  8. nyoj_42_一笔画问题_201403181935

    一笔画问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下 ...

  9. 机器学习1k近邻

    自己一直学习计算机视觉方面的东西,现在想学习一下数据挖掘跟搜索引擎,自己基础也有点薄弱,看朱明的那本数据挖掘,只能片面的了解这个数据挖掘.不过最近有一本书 机器学习实战,于是乎通过实战的形式了解一下基 ...

  10. (二)模板引擎之Velocity脚本基本的语法全

    velocity velocity三种reference     变量:对java对象的一种字符串化表示,返回值调用了java的toString()方法的结果.     方法:调用的是对象的某个方法. ...