jquery基础 笔记二
动态创建元素
关于使用HTML DOM创建元素本文不做详细介绍, 下面举一个简单的例子:
//使用Dom标准创建元素
var select = document.createElement("select");
select.options[0] = new Option("加载项1", "value1");
select.options[1] = new Option("加载项2", "value2");
select.size = "2";
var object = testDiv.appendChild(select);
通过使用 document.createElement 方法我们可以创建Dom元素, 然后通过appendChild方法为添加到指定对象上.
所以请大家将修改DOM的函数使用此方法调用. 另外还要注意document.createElement和innerHTML的区别.
如果可以请尽量使用document.createElement和$("<div/>")的形式创建对象.
或者使用jQuery 动态创建的$(document).ready(function){
function() { testDiv.innerHTML = "<div style=\"border:solid 1px #FF0000\">使用动态创建的$(document).ready(function)方法</div>"; }
}方法
管理jQuery包装集元素
既然学会了动态创建元素, 接下来就会想要把这些元素放入我们的jQuery包装集中.
我们可以在jQuery包装集上调用下面这些函数, 用来改变我们的原始jQuery包装集, 并且大部分返回的都是过滤后的jQuery包装集.
jQuery提供了一系列的函数用来管理包装集:
1.过滤 Filtering
| 名称 | 说明 | 举例 |
| eq( index ) | 获取第N个元素 | 获取匹配的第二个元素: $("p").eq(1) |
| filter( expr ) |
筛选出与指定表达式匹配的元素集合。 |
保留带有select类的元素: $("p").filter(".selected") |
| filter( fn ) |
筛选出与指定函数返回值匹配的元素集合 这个函数内部将对每个对象计算一次 (正如 '$.each'). 如果调用的函数返回false则这个元素被删除,否则就会保留。 |
保留子元素中不含有ol的元素:
$("div").filter(function(index) { return $("ol", this).size() == 0; }); |
| is( expr ) 注意: 这个函数返回的不是jQuery包装集而是Boolean值 |
用一个表达式来检查当前选择的元素集合,如果其中至少有一个元素符合这个给定的表达式就返回true。 如果没有元素符合,或者表达式无效,都返回'false'. 'filter' 内部实际也是在调用这个函数,所以,filter()函数原有的规则在这里也适用。 |
由于input元素的父元素是一个表单元素,所以返回true: $("input[type='checkbox']").parent().is("form") |
| map( callback ) |
将一组元素转换成其他数组(不论是否是元素数组) 你可以用这个函数来建立一个列表,不论是值、属性还是CSS样式,或者其他特别形式。这都可以用'$.map()'来方便的建立 |
把form中的每个input元素的值建立一个列表:
$("p").append( $("input").map(function(){ return $(this).val(); }).get().join(", ") ); |
| not( expr ) | 删除与指定表达式匹配的元素 | 从p元素中删除带有 select 的ID的元素: $("p").not( $("#selected")[0] ) |
| 选取一个匹配的子集 | 选择第一个p元素: $("p").slice(0, 1); |
2.查找 Finding
| 名称 | 说明 | 举例 |
| add( expr ) |
把与表达式匹配的元素添加到jQuery对象中。这个函数可以用于连接分别与两个表达式匹配的元素结果集。 |
动态生成一个元素并添加至匹配的元素中: $("p").add("<span>Again</span>") |
| children( [expr] ) |
取得一个包含匹配的元素集合中每一个元素的所有子元素的元素集合。 可以通过可选的表达式来过滤所匹配的子元素。注意:parents()将查找所有祖辈元素,而children()只考虑子元素而不考虑所有后代元素。 |
查找DIV中的每个子元素: $("div").children() |
| closest( [expr] ) | 取得与表达式匹配的最新的父元素 |
为事件源最近的父类li对象更换样式: $(document).bind("click", function (e) { $(e.target).closest("li").toggleClass("hilight"); }); |
| contents( ) | 查找匹配元素内部所有的子节点(包括文本节点)。如果元素是一个iframe,则查找文档内容 | 查找所有文本节点并加粗: $("p").contents().not("[nodeType=1]").wrap("<b/>"); |
| find( expr ) |
搜索所有与指定表达式匹配的元素。这个函数是找出正在处理的元素的后代元素的好方法。 所有搜索都依靠jQuery表达式来完成。这个表达式可以使用CSS1-3的选择器语法来写。 |
从所有的段落开始,进一步搜索下面的span元素。与$("p span")相同: $("p").find("span") |
| next( [expr] ) |
取得一个包含匹配的元素集合中每一个元素紧邻的后面同辈元素的元素集合。 这个函数只返回后面那个紧邻的同辈元素,而不是后面所有的同辈元素(可以使用nextAll)。可以用一个可选的表达式进行筛选。 |
找到每个段落的后面紧邻的同辈元素: $("p").next() |
| nextAll( [expr] ) |
查找当前元素之后所有的同辈元素。 可以用表达式过滤 |
给第一个div之后的所有元素加个类: $("div:first").nextAll().addClass("after"); |
| offsetParent( ) | 返回第一个有定位的父类(比如(relative或absolute)). | |
| parent( [expr] ) |
取得一个包含着所有匹配元素的唯一父元素的元素集合。 你可以使用可选的表达式来筛选。 |
查找每个段落的父元素: $("p").parent() |
| parents( [expr] ) | 取得一个包含着所有匹配元素的祖先元素的元素集合(不包含根元素)。可以通过一个可选的表达式进行筛选。 | 找到每个span元素的所有祖先元素: $("span").parents() |
| prev( [expr] ) |
取得一个包含匹配的元素集合中每一个元素紧邻的前一个同辈元素的元素集合。 可以用一个可选的表达式进行筛选。只有紧邻的同辈元素会被匹配到,而不是前面所有的同辈元素。 |
找到每个段落紧邻的前一个同辈元素: $("p").prev() |
| prevAll( [expr] ) |
查找当前元素之前所有的同辈元素 可以用表达式过滤。 |
给最后一个之前的所有div加上一个类: $("div:last").prevAll().addClass("before"); |
| siblings( [expr] ) | 取得一个包含匹配的元素集合中每一个元素的所有唯一同辈元素的元素集合。可以用可选的表达式进行筛选。 | 找到每个div的所有同辈元素: $("div").siblings() |
3.串联 Chaining
| 名称 | 说明 | 举例 |
| andSelf( ) |
加入先前所选的加入当前元素中 对于筛选或查找后的元素,要加入先前所选元素时将会很有用。 |
选取所有div以及内部的p,并加上border类: $("div").find("p").andSelf().addClass("border"); |
| end( ) | 回到最近的一个"破坏性"操作之前。即,将匹配的元素列表变为前一次的状态。 如果之前没有破坏性操作,则返回一个空集。所谓的"破坏性"就是指任何改变所匹配的jQuery元素的操作。这包括在 Traversing 中任何返回一个jQuery对象的函数--'add', 'andSelf', 'children', 'filter', 'find', 'map', 'next', 'nextAll', 'not', 'parent', 'parents', 'prev', 'prevAll', 'siblings' and 'slice'--再加上 Manipulation 中的 'clone'。 |
选取所有的p元素,查找并选取span子元素,然后再回过来选取p元素: $("p").find("span").end() |
转载:http://www.cnblogs.com/engine1984/archive/2012/02/28/2371473.html
jquery基础 笔记二的更多相关文章
- JavaScript基础笔记二
一.函数返回值1.什么是函数返回值 函数的执行结果2. 可以没有return // 没有return或者return后面为空则会返回undefined3.一个函数应该只返回一种类型的值 二.可变 ...
- jQuery基础之二
jQuery基础之二 jQuery的中文文档十分详细,并且权威.W3C的jQuery文档更加简单实用. jQuery 1.9.0 jQuery中文文档W3C的jQuery文档 jQuery操作DO ...
- jQuery学习笔记(二)jQuery中DOM操作
目录 DOM操作分类 jQuery中的各种DOM操作 查找节点 创建节点 删除节点 复制节点 替换节点 包裹节点 属性操作 样式操作 对HTML.文本和值的操作 遍历节点 CSS-DOM操作 小结 本 ...
- jQuery基础学习(二)—jQuery选择器
一.jQuery基本选择器 1.CSS选择器 在学习jQuery选择器之前,先介绍一下之前学过的CSS选择器. 选择器 语法 描述 示例 标签选择器 E { ...
- jQuery基础(二)DOM
DOM节点的创建 jQuery节点创建与属性的处理 创建元素节点: $("<div></div>") 创建为文本节点: $("<div> ...
- jQuery基础笔记(2)
day54 筛选器 参考:https://www.cnblogs.com/liwenzhou/p/8178806.html#autoid-1-7-5 筛选器方法 下一个元素: $("#id& ...
- jQuery基础笔记(1)
day54 参考:https://www.cnblogs.com/liwenzhou/p/8178806.html 1. 为什么要学jQuery? MySQL Python ...
- jQuery基础之二(操作标签)
一:样式操作 addClass();// 添加指定的CSS类名. removeClass();// 移除指定的CSS类名. hasClass();// 判断样式存不存在 toggleClass();/ ...
- jquery基础 笔记三
一. 操作"DOM属性" 在jQuery中没有包装操作"DOM属性"的函数, 因为使用javascript获取和设置"DOM属性"都很简单. ...
随机推荐
- let 与 var
前言let与var最大的区别就是var会变量提升.var会被覆盖.var变量没有块级作用域,而let都将弥补这些bug.传统语言都不会有‘变量提升.重复声明被覆盖.变量没有块级作用’这些问题,这是js ...
- hash值是啥,单页面应用的实质
1.什么hash Location hash属性,http://www.runoob.com/jsref/prop-loc-hash.html,hash 属性是一个可读可写的字符串,该字符串是 URL ...
- Django restful Framework 之Requests and Response 方法
前言: 本章主要介绍REST framework 内置的必要的功能. Request objects Response objects Status codes Wrapping API views ...
- hdu6208 The Dominator of Strings
地址: 题目: The Dominator of Strings Time Limit: 3000/3000 MS (Java/Others) Memory Limit: 65535/32768 ...
- 谈面向对象的编程(Python)
(注:本文部分内容摘自互联网,由于作者水平有限,不足之处,还望留言指正.) 今天中秋节,也没什么特别的,寻常日子依旧. 谈谈面向对象吧,什么叫面向对象? 那么问题来了,你有对象吗? 嗯,,,那我可 ...
- myeclipse自动生成相应对象接收返回值的快捷键
在你要自动生成返回值对象的那一行的末尾(注意一定要将光标点到最后),按Alt+Shift+L:就可以了.
- Python 实例3—三级菜单
老男孩培训学习: ''' Author:Ranxf ''' menu = { '北京': { '海淀': { '五道口': { 'soho': {}, '网易': {}, 'google': {} } ...
- Delphi7编译时,发生Access violation at address 00A7B628 in module 'dcc70.dll'. Read of address 00000000.(Delphi6升级到Delphi7)
最近接了一个项目,要求使用Delphi7来开发程序,可是由于我们之前均使用delphi6来开发程序的,而且Delphi6使用很长时间了,积累并改造了第三方控件很成熟了: 故把Delphi6的控件移植( ...
- 【Error】安装程序无法打开注册表项 UNKNOWN\Components\...
在安装程序的时候出现错误信息: 解决方法: 依次点击开始,所有程序,附件,右键单击命令提示符,选择以管理员身份运行.运行secedit /configure /cfg %windir%\inf\def ...
- oracle中的异常处理方法
异常处理create or replace procedure prc_get_sex (stuname student.name%type) as stusex student.sex%type; ...