JavaScript大杂烩14 - 使用JQuery(上)
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
这是引用CDN上的文件,通常大家也会把这个类库下载下来放到本地,然后引用。
var domObj = document.getElementById('testDiv');
var jQueryObj = $(domObj);
而JQuery对象作为一个DOM对象的包装集,使用索引值的方式获取的就是DOM对象,如下面例子中的获取第1个元素:
var domObj = $('#testDiv')[0];
var domObj = $("#testDiv").get(0);
当然了,JQuery对象枚举的时候返回的也是DOM对象,如下所示:
$("#testDiv").each(function() { alert(this); });
这个例子中的this就是DOM对象。
$(selector).action(parameters);
下面分别看看这两个部分:
// 基础选择器
$('#testDiv') // 选择id为testDiv的元素,一般id在整个页面是唯一的
$('p') // 选择页面中所有的p元素
$('.big') // 选择页面中所有的CSS类为big的元素
// 选择器的与或关系
$('.big,p') // 选择页面中所有CSS类为big的元素和所有的p元素
$('p#testDiv') // 选择页面中所有的CSS类为big的p元素
// 层次选择器
$('form input') // 选择页面中所有的form元素下面的所有的input元素
$('form>input') // 选择页面中所有的form元素下面直接属于form的input元素
$('#name+img') // 选择页面中id为name的元素后面紧跟着的img元素
$('#name~img') // 选择页面中id为name的元素后面所有的img元素
// 各种条件的过滤器:索引值,内容过滤,属性过滤,子元素过滤
$('tr:first'), $('tr:last') // 选择第一行/最后一行表格
$('input:not(:checked)') // 选择页面中没有被checked的input,not后面的参数可以是任意的选择器
$('tr:even'), $('tr:odd') // 偶数行/奇数行
$('tr:eq(1)'),$('tr:gt(1)'), $('tr:lt(1)') // 满足条件的第二行/第二行后面的/第二行前面的
$(':header') // 所有h1, h2, h3元素
$('div:not(:animated)') // 所有没有在执行动画效果的div
$("div:contains('Name')") // 所有内容中含有Name字符串的div
$('div:has(p)') // 所有含有p元素的div
$('tr:hidden'), $('tr:visible') // 隐藏/显示的行
// 所有有id属性的div/id值为name的div/id值不为name的div
$('div[id]'), $("div[id='name']"), $("div[id!='name']")
// 所有id属性值以name开头/结尾/包含name的div
$("div[id^='name']"), $("div[id$='name']"), $("div[id*='name']")
// 满足多个属性条件的div
$("div[id='name'][name$='man']")
// 在每个ul中查找第2个li,nth-child后面的参数可以是even, odd, index值, 倍数如3n, 3n+1等等。
// 注意这个参数是从1开始的,而eq()是从0开始的。
$('ul li:nth-child(2)')
// 在每个ul的子元素中中查找第一个/最后一个li
$('ul li:first-child'), $('ul li:last-child') // 表单选择器与过滤器:
// 选择所有的input/text/password...
$(':input'), $(':text'), $(':password'), $(':radio'), $(':checkbox')
$(':button'), $(':submit'), $(':image'), $(':reset'), $(':file')
// 选择启用/禁用/checked/选中的input,option
$(':input:enabled'), $(':input:disabled'), $(':input:checked'), $('select option:selected')
$('<li class="greet">test</lt>')
上面代码从HTML代码生成了一个jQuery实例,它与从CSS选择器生成的jQuery实例完全一样。唯一的区别就是,它对应的DOM结构不属于当前文档。
$('li', someElement);
上面代码表示,只寻找属于someElement对象下属的li元素。someElement可以是jQuery对象的实例,也可以是DOM对象。
// first方法返回结果集的第一个成员,last方法返回结果集的最后一个成员。
$("li").first()
$("li").last()
// next方法返回紧邻的下一个同级元素,prev方法返回紧邻的上一个同级元素。
// 如果next方法和prev方法带有参数,表示选择符合该参数的同级元素。
$("li").first().next()
$("li").last().prev()
$("li").first().next('.item')
$("li").last().prev('.item')
// parent方法返回当前元素的父元素,parents方法返回当前元素的所有上级元素(直到html元素)。
// parent, parents, children这三个方法都接受一个选择器作为参数。
$("p").parent()
$("p").parent(".selected")
$("p").parents()
$("p").parents("div")
// children方法返回选中元素的所有子元素。
$("div").children()
$("div").children(".selected")
// 等同于
$('div > *')
$('div > .selected')
// siblings方法返回当前元素的所有同级元素。
$('li').first().siblings()
$('li').first().siblings('.item')
// nextAll方法返回当前元素其后的所有同级元素,prevAll方法返回当前元素前面的所有同级元素。
$('li').first().nextAll()
$('li').last().prevAll()
当然除了这些与DOM操作类似的获取parent, child, sibling(兄弟节点)的操作外,JQuery还提供了其它的一些相当强大的过滤操作,例如:
// closest方法返回当前元素,以及当前元素的所有上级元素之中,第一个符合条件的元素。
// find方法返回当前元素的所有符合条件的下级元素。
$('li').closest('div')
$('div').find('li')
// add方法用于为结果集添加元素。
$('li').add('p')
// addBack方法将当前元素加回原始的结果集。
$('li').parent().addBack()
// end方法用于返回原始的结果集
$('li').first().end() // filter方法用于过滤结果集,它可以接受多种类型的参数,只返回与参数一致的结果。
// 返回符合CSS选择器的结果
$('li').filter('.item')
// 返回函数返回值为true的结果
$("li").filter(function(index) {
return index % 2 === 1;
})
// 返回符合特定DOM对象的结果
$("li").filter(document.getElementById("unique"))
// 返回符合特定jQuery实例的结果
$("li").filter($("#unique"))
// not方法的用法与filter方法完全一致,但是返回相反的结果,即过滤掉匹配项。
$('li').not('.item')
// has方法与filter方法作用相同,但是只过滤出子元素符合条件的元素。
$("li").has("ul")
// 上面代码返回具有ul子元素的li元素。
上面代码中的需要说明两点:
JavaScript大杂烩14 - 使用JQuery(上)的更多相关文章
- JavaScript(14)jQuery(JavaScript 库)
JavaScript 框架(库) JavaScript 高级程序设计(特别是对浏览器差异的复杂处理),通常非常困难也非常耗时.为了应对这些调整,很多的 JavaScript (helper) 库应运而 ...
- JavaScript大杂烩15 - 使用JQuery(下)
前面我们总结了使用各种selector拿到了jQuery对象了,下面就是对这个对象执行指定的行为了. 2. 操作对象 - 行为函数action 执行jQuery内置的行为函数的时候,JQuery自动遍 ...
- Java程序猿JavaScript学习笔记(14——扩大jQuery UI)
计划和完成这个例子中,音符的顺序如下: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScr ...
- jquery上传文件控件Uploadify
基于jquery的文件上传控件,支持ajax无刷新上传,多个文件同时上传,上传进行进度显示,删除已上传文件. 要求使用jquery1.4或以上版本,flash player 9.0.24以上. 有两个 ...
- jQuery上定义插件并重设插件构造函数
插件alert的全部代码,每个插件都定义在如下类似的作用域中: +function ($) { 'use strict'; // ALERT CLASS DEFINITION // ========= ...
- jQuery上传插件Uploadify使用帮助
Uploadify是JQuery的一个上传插件,实现的效果非常不错,带进度显示.它的功能特色总结如下: 支持单文件或多文件上传,可控制并发上传的文件数 在服务器端支持各种语言与之配合使用,诸如PHP, ...
- JQuery上传插件uploadify优化
旧版的uploadify是基于flash上传的,但是总有那么些问题,让我们用的不是很舒服.今天主要分享下在项目中用uploadify遇到的一些问题,以及优化处理 官方下载 官方文档 官方演示 下面是官 ...
- jquery 上传空间uploadify使用笔记
基于jquery的文件上传控件,支持ajax无刷新上传,多个文件同时上传,上传进行进度显示,删除已上传文件. 要求使用jquery1.4或以上版本,flash player 9.0.24以上. 有两个 ...
- jquery上传控件个人使用
转了一篇jquery的上传控件使用博文,但是,经过测试貌似不行,自己研究了一下,效果实现.记下,以后使用. 下载“Uploadify”,官方版本为php的,很多文件不需要,删除带.php的文件. &l ...
随机推荐
- linux中Java项目占用cpu、内存过高时的排查经历
一.使用top命令查看占用高资源的java项目的进程ID(pid): top 二.查看该进程中的线程所占用资源的情况:top -Hp pid 三.查看该线程对应的16进制:printf %x 1112 ...
- mysql的binlog进行数据恢复
什么是binlog? binlog,也称为二进制日志,记录对数据发生或潜在发生更改的SQL语句,并以二进制的形式保存在磁盘中,可以用来查看数据库的变更历史(具体的时间点所有的SQL操作).数据库增量备 ...
- java——IObufferedReader文件输入输出流
package com.jredu.ch02_lianxi; import java.io.BufferedReader;import java.io.BufferedWriter;import ja ...
- php网页上传文件到Ubuntu服务器(input type=fire)- 赖大大
直接上代码: <form enctype="multipart/form-data" method="post" action=""& ...
- process_begin: CreateProcess(NULL,......) make (e=87): 参数错误。
在编译 trinity-android 的过程中,总是报 process_begin: CreateProcess(NULL,......) make (e=87): 参数错误 原因是.MK文件中包含 ...
- 团队作业4——beta阶段冲刺
Deadline: 2018-12-16 22:00PM,以博客提交至班级博客时间为准 提交: (a) 项目课堂演示: (b) 1篇冲刺准备+5篇冲刺随笔,: (c) 1篇用户使用用报告: (d) 1 ...
- [LeetCode解题报告] 502. IPO
题目描述 假设 LeetCode 即将开始其 IPO.为了以更高的价格将股票卖给风险投资公司,LeetCode希望在 IPO 之前开展一些项目以增加其资本. 由于资源有限,它只能在 IPO 之前完成最 ...
- C++基础知识小记
最近在帮华为接口人研究自动化部署项目AutoDeploy,把代码发给我了,不过都是用C++写的,自己虽然在大学也学了一学期的C++不过也是很菜鸟,只是学了基本语法,还远未达到实战项目,不管怎么说就是撸 ...
- Ubuntu下将现有的文件打包成deb包
转自:http://www.linuxidc.com/Linux/2008-04/12297.htm deb是Debian Linux的软件包格式.一般来说是需要通过编译源码然后制作deb包,今天由于 ...
- C# json反序列化 对象中嵌套数组 (转载)
看图: 这里可以看到是二层嵌套!!使用C#如何实现?? 思路:使用list集合实现 → 建立类 → list集合 → 微软的 Newtonsoft.Json (一款.NET中开源的Json序列化 ...