一、前言

在使用jQuery选择器获取到jQuery包装集后,我们就要对这些包装集进行各种操作

二、创建新的元素

1.使用HTMLDOM创建元素

(1)什么是DOM

当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)

(2)使用HTML DOM创建元素

  1 <div id="testDiv"></div>
2 <script>
3 var select = document.createElement("select");
4 select.options[0] = new Option("加载项1", "value1");
5 select.options[1] = new Option("加载项2", "value2");
6 select.size = "2";
7 var testDiv = document.getElementById("testDiv");
8 var object = testDiv.appendChild(select);
9 </script>

2.使用jQuery函数创建元素

  1 <div id="testDiv"></div>
2 <script>
3 $("<select><option value ='value1'>加载项1</option><option value='value2'>加载项2</option></select>").appendTo($("#testDiv"))
4 </script>
5

(1)创建时注意

一定不要在页面加载时就改变页面的DOM结构,正确的做法是在页面加载完毕后添加或删除元素

方式一:所有资源完整加载后,再添加新的元素

缺点:如果某个图片或资源加载很长时间,就会显示一个不完整的页面

<script>
window.onload = function () {
$("<select><option value ='value1'>加载项1</option><option value='value2'>加载项2</option></select>").appendTo($("#testDiv"));
}
</script>

方式二:DOM完整加载后,再添加新的元素

<script>
$(document).ready(function () {
$("<select><option value ='value1'>加载项1</option><option value='value2'>加载项2</option></select>").appendTo($("#testDiv"));
});
</script>

或者使用简洁语法

<script>
$(function () {
$("<select><option value ='value1'>加载项1</option><option value='value2'>加载项2</option></select>").appendTo($("#testDiv"));
});
</script>

三、管理jQuery包装集的一些函数

1.过滤 Filtering

$("p").eq(1) 获取匹配的第二个元素
$("p").filter(".selected") 保留class为selected的元素
$("div").filter(function (index) {return $("ol", this).size() == 0;}); 保留子元素中不含有ol的元素
$("input[type='checkbox']").parent().is("form") 由于input元素的父元素是一个表单元素,所以返回true
$("p").append($("input").map(function () { return $(this).val(); }).get().join(", ")); 把form中的每个input元素的值建立一个列表
$("p").not( $("#selected")[0] ) 从p元素中删除带有 select 的ID的元素
$("p").slice(0, 1) 选择第一个p元素

2.查找Finding

$("p").add("<span>Again</span>") 动态生成一个元素并添加至匹配的元素中
$("div").children() 查找DIV中的每个子元素
$(document).bind("click", function (e) { $(e.target).closest("li").toggleClass("hilight"); }) 为事件源最近的父类li对象更换样式
$("p").contents().not("[nodeType=1]").wrap("<b/>") 查找所有文本节点并加粗
$("p").find("span") 与$("p span")相同
$("p").next() 找到每个段落的后面紧邻的同辈元素
$("div:first").nextAll().addClass("after") 给第一个div之后的所有元素加个class
offsetParent( )  
$("p").parent() 查找每个段落的父元素
$("span").parents() 找到每个span元素的所有祖先元素
$("p").prev() 找到每个段落紧邻的前一个同辈元素
$("div:last").prevAll().addClass("before") 给最后一个之前的所有div加上一个class
$("div").siblings() 找到每个div的所有同辈元素

3.串联 Chaining

$("div").find("p").andSelf().addClass("border") 选取所有div以及内部的p,并加上class
$("p").find("span").end() 选取所有的p元素,查找并选取span子元素,然后再回过来选取p元素

四、参考文章

http://www.cnblogs.com/zhangziqiu/archive/2009/05/04/jQuery-Learn-3.html

jQuery学习笔记(3)-操作jQuery包装集的函数的更多相关文章

  1. Jquery学习笔记:获取jquery对象的基本方法

    jquery最大的好处是将js对html页面的操作(读写)进行了封装,隔离了浏览器的差异性,并简化了操作,和提供了强大的功能. 在web页面中,所有的js操作都是围绕操作dom对象来的.而jquery ...

  2. jquery学习笔记---Dom操作

    一.DOM操作的分类 DOM(document object model)是一种与浏览器.平台.语言无关的接口,使用该接口可以访问页面中的·所有组件.DOM的操作可以分为DOM Core.HTML-D ...

  3. jQuery学习笔记1——操作属性

    一.获得和设置内容 三个简单实用的用于 DOM 操作的 jQuery 方法: text() - 设置或返回所选元素的文本内容, 得到匹配元素集合中每个元素的文本内容结合,包括他们的后代, 即由所有匹配 ...

  4. Jquery学习笔记:操作form表单元素之二(复选框和单选框)

    在上面文章的基础上,我们介绍如何操作表单元素中的 复选框和单选框. 一.复选框 <label> <input type="checkbox" id="i ...

  5. Jquery学习笔记:操作form表单元素之一(文本框和下拉框)

    一.概述 在web页面开发中,经常需要获取和设置表单元素的值(如文本框中的内容),特别是在ajax应用中,更是常态.本文系统的介绍下如何操作. 同操作其它html元素一样,操作的过程差不多. 第一步, ...

  6. Jquery学习笔记:利用jquery获取select下拉框的值

    jquery不是特别熟练,每次使用不常用的就要百度,特地记录下来. 我的下拉框是: <div class="form-group"> <select class= ...

  7. jQuery 学习笔记

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

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

    jQuery学习笔记之DOM操作.事件绑定(2) --------------------学习目录------------------------ 4.DOM操作 5.事件绑定 源码地址: https ...

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

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

随机推荐

  1. 洛谷—— P1690 贪婪的Copy

    https://www.luogu.org/problem/show?pid=1690 题目描述 Copy从卢牛那里听说在一片叫yz的神的领域埋藏着不少宝藏,于是Copy来到了这个被划分为个区域的神地 ...

  2. html上传图片类型

    <html>  <head>  <meta charset="utf-8">  <title>上传图片</title> ...

  3. 【转】实现一个自己的promise

    转, 原文:http://blog.csdn.net/yibingxiong1/article/details/68075416------------------------------------ ...

  4. 如何快速掌握plc或工控机与其他设备的modbus通讯协议?包括格式与实际过程 RT,本人从事工控行业多年,对于PLC与触摸屏也算比较熟悉,唯独对这个通讯协议比较难理解,请教高人指导,从什么地方开始下手,或者是说如何正确理解报文格式或正确写入

    Modbus协议是OSI模型的第七层的应用层通讯协议,定义了不同类型设备间交换信息方式,以及信息的格式. Modbus的工作方式是请求/应答,每次通讯都是主站先发送指令,可以是广播,或是向特定从站的单 ...

  5. 获取路由事件的源Source和OriginalSource

    路由事件的消息包括在RoutedEventArgs实例中,该实例有两个属性Source和OriginalSource,都是表示路由事件传递的起点.即事件消息的源头.仅仅只是Source表示的是Logi ...

  6. Android 布局自适应屏幕

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenFzNjI3NjExMzA=/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...

  7. [Qt总结篇]终端远程升级client

    环境: QT4.8.5 for Windows(Qt Creator+MinGW) 一.写在前面: 1.深度:鉴于C/C++的功底还远远不足,个人主要精力还是学习C/C++,所以没打算继续深入研究Qt ...

  8. cmd启动Oracle服务和监听服务

    启动数据库服务 net start oracleserviceorcl 启动数据库监听 lsnrctl start

  9. Guake Terminal ── linux下完美帅气的终端

    虽说如今非常多Linux发行版.比方Ubuntu,已经基本上能够採用GUI来完毕绝大部分一般性的任务. 可是,终端程序对于linux用户来说仍是不可缺少的. Gnome自带的gnome-termina ...

  10. #pragma pack (n) 惹的祸

    今天遇到了一个问题,使用数据流传输的数据在解析的时候数据错位.想了非常久,发现是#pragma pack (n)惹的祸. 首先.解析方使用了编译字节设置,可是在发送方没有使用,于是用相同的结构体解析数 ...