前端基础——jQuery
一 jQuery
1 简介
jQuery是一个“写得更少,但做得更多”的轻量级JavaScript库。jQuery极大地简化了JavaScript编程。
- 它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。
- jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互。
- jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。
2 jQuery对象
- jQuery 对象就是通过jQuery包装DOM对象后产生的对象。
- jQuery 对象是 jQuery 独有的. 如果一个对象是 jQuery 对象, 那么它就可以使用 jQuery 里的方法: $(“#test”).html();
比如:
$("#test").html() 意思是指:获取ID为test的元素内的html代码。其中html()是jQuery里的方法
这段代码等同于用DOM实现代码: document.getElementById(" test ").innerHTML;
虽然jQuery对象是包装DOM对象后产生的,但是jQuery无法使用DOM对象的任何方法,同理DOM对象也不能使用jQuery里的方法.乱使用会报错
约定:如果获取的是 jQuery 对象, 那么要在变量前面加上$.
var $variable = jQuery 对象 var variable = DOM 对象
3 jQuery基本语法
$(selector).action()
二 jQuery选择器
http://jquery.cuishifeng.cn/index.html
1 基本选择器
$("*") $("#id") $(".class") $("element") $(".class,p,div")
$("p.intro") 选取所有 class="intro" 的 <p> 元素。
$("p#demo") 选取所有 id="demo" 的 <p> 元素。
$("*").css("color","red").css("background-color","#8eb031"); $("#div2").css("color","red"); $(".div1").css("width","200px").css("background-color","#8eb031"); $("p").css("font-weight","700"); $(".div1,#div2").hide();
//防止文档在完全加载(就绪)之前运行jQuery代码 $(document).ready(function(){ --- jQuery functions go here ---- });
2 层级选择器
$(".outer div") $(".outer>div") $(".outer+div") $(".outer~div")
空格:后代选择器
> :子代选择器
+ :毗邻,即下一个紧邻的元素
~ :
3 属性选择器
$('[id="div1"]') $('["alex="sb"][id]')
$("[class='div1']").hide(); $("[id='div2']").hide(); $("[alex='ss']").hide(); // 支持自定义属性选择
4 表单选择器
$("[type='text']")----->$(":text") 注意只适用于input标签
两种方式均表示:所有 type="text" 的 <input> 元素。
$(":input") //匹配所有 input, textarea, select 和 button 元素
$(":text") //所有的单行文本框
$(":password") //所有密码框
$(":radio") //所有单选按钮
$(":checkbox") //所有复选框
$(":submit") //所有提交按钮
$(":reset") //所有重置按钮
$(":button") //所有button按钮
$(":file") //所有文件域
$("input:checked") //所有选中的元素
$("select option:selected") //select中所有选中的option元素
三 jQuery筛选器
1 过滤筛选器
$("li").eq(2) // 列表中的第3个元素(index从0开始)。
$("li").first() // 列表中的第一个元素。
$("ul li").hasclass("test") // 查看指定的元素是否拥有test类。
2 查询筛选器
$("div").children() //div中的每个子元素,第一层
$("div").find("span") //div中的包含的所有span元素,子子孙孙
$("p").next() //紧邻p元素后的一个同级元素
$("p").nextAll() //p元素之后所有的同级元素
$("#test").nextUntil("#test2") //id为"#test"元素之后到id为'#test2'之间所有的同级元素,不包括自己和最后一个元素
$("p").prev() //紧邻p元素的前一个同级元素
$("p").prevAll() //p元素之前所有的同级元素
$("#test").prevUntil("#test2") //id为"#test"元素之前到id为'#test2'之间所有的同辈元素,不包括自己和最后一个元素 $("p").parent() //每个p元素的父元素
$("p").parents() //每个p元素的所有祖先元素,body
$("#td1").parentsUntil("#td2") //id为"#td1"元素到id为'#td2'之间所有的父级元素,掐头去尾
$("div").siblings() //所有的同级元素,不包括自己
3 实例
菜单隐藏与显示
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript" src="jquery-3.1.1.js"></script>
<script>
function show(self) {
$(self).next().removeClass('hide');
$(self).parent().siblings().children(".con").addClass('hide');
}
</script>
<style>
*{
margin: 0 auto;
} .menu{
float: left;
height: 600px;
background-color: #0081c2;
width: 20%;
} .content{
float: left;
height: 600px;
background-color: #9aaece;
width: 80%;
} .title{
line-height: 30px;
color: #fff;
background-color: #015e98;
padding-left: 10px;
border-bottom: solid 1px #3A557A;
} .con div{
padding-left: 13px;
} .hide{
display: none;
}
</style>
</head>
<body>
<div class="left">
<div class="menu">
<div class="item">
<div class="title" onclick="show(this)">集群管理</div>
<div class="con">
<div>集群管理</div>
<div>主机管理</div>
<div>虚拟机管理</div>
</div>
</div>
<div class="item">
<div class="title" onclick="show(this)">视图管理</div>
<div class="con hide">
<div>集群视图</div>
<div>主机视图</div>
<div>虚拟机视图</div>
</div>
</div>
<div class="item">
<div class="title" onclick="show(this)">系统管理</div>
<div class="con hide">
<div>用户管理</div>
<div>规则管理</div>
<div>系统设置</div>
</div>
</div>
</div>
</div>
<div class="content"></div>
</body>
</html>
四 jQuery属性
- attr() // 返回或设置被选元素的属性值
- removeAttr() // 从每一个匹配的元素中删除一个属性
- prop() // 设置或返回匹配元素的属性值 select,check,radio标签用prop,其它用attr。
- removeProp() // 用来删除由.prop()方法设置的属性集
$("img").attr("src"); $("img").attr({ src: "test.jpg", alt: "Test Image" }); $("img").removeAttr("src"); $("input[type='checkbox']").prop("checked");
五 jQuery中CSS类操作
- addClass() // 为每个匹配的元素添加指定的类名。
- removeClass() // 从所有匹配的元素中删除全部或者指定的类。
$("p").addClass("selected"); $("p").removeClass("selected");
六 jQuery中HTML代码/文本/值 操作
- html() // 获取第一个匹配元素的HTML内容。不加参数获取值,加参数设置值
- text() // 获取匹配元素中所有内容,不渲染。不加参数获取值,加参数设置值
- val() // 获得匹配元素的当前值。不加参数获取值,加参数设置值
七 jQuery位置操作
- offset() // 获取匹配元素距离文档top和left的距离。offset().top,offset().left
- position // 获取匹配元素相对父元素的距离(偏移)。
- scrollTop() // 获取匹配元素相对滚动条顶部的偏移。
- scrollLeft() // 获取匹配元素相对滚动条左侧的偏移。
八 jQuery尺寸操作
- height() // 当前元素自身的高度
- width() // 当前元素自身的宽度
- innerHeight() // 自身高度 + padding
- innerWidth() // 自身宽度 + margin
- outerHeight() // 默认参数为false
- 参数为false时,自身高度 + padding + border
- 参数为true时,自身高度 + padding + border + margin
- outerWidth() // 默认参数为false
- 参数为false时,自身宽度 + padding + border
- 参数为true时,自身宽度 + padding + border + margin
获取文档高度: $(document).height()
获取窗口高度: $(window).height()
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript" src="jquery-3.1.1.js"></script>
</head>
<body>
<input type="button" value="全选" onclick="selectall()">
<input type="button" value="取消" onclick="cancel()">
<input type="button" value="反选" onclick="reverse()">
<table border="1">
<tr>
<td><input type="checkbox"></td>
<td>111111</td>
</tr>
<tr>
<td><input type="checkbox"></td>
<td>222222</td>
</tr>
<tr>
<td><input type="checkbox"></td>
<td>333333</td>
</tr>
<tr>
<td><input type="checkbox"></td>
<td>444444</td>
</tr>
</table>
<script>
function selectall() {
// obj = document.body;
// obj.a = 1
// obj.b = 2
// obj.attributes = { 'id':xx, '':''}
// obj.attributes.type = 123
// obj.a = 123;
// select,check,radio prop obj.checked = True
// <div alex='name'></div>
// $("table :checkbox").attr("checked",true)
$("table :checkbox").prop("checked",true)
} function cancel() {
// $("table :checkbox").attr("checked",false); // 不成功
$("table :checkbox").prop("checked",false);
// $("table :checkbox").removeAttr("checked")
// $("table :checkbox").removeProp("checked") // 不成功
} function reverse() {
$("table :checkbox").each(function () {
if ($(this).prop("checked")){
$(this).prop("checked",false)
}else {
$(this).prop("checked",true)
}
})
}
</script>
</body>
</html>
复选框正反选
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript" src="jquery-3.1.1.js"></script>
<style>
*{
margin: 0;
} #div1{
position: fixed; /*position固定住div1*/
background-color: #cc3300;
height: 1000px;
width: 100%;
} #div2{
position: fixed;
background-color: #a2a2a2;
top: 0;
right: 0;
bottom: 0;
left: 0;
opacity: 0.7;
} #div3{
position: absolute; /*绝对定位*/
height: 300px;
width: 200px;
background-color: brown;
top: 50%;
left: 50%;
margin-left: -100px;
margin-top: -150px;
} .hide{
display: none;
}
</style>
</head>
<body>
<div id="div1">
<input type="button" value="点击" onclick="show()">
</div>
<div id="div2" class="div hide"></div>
<div id="div3" class="div hide">
<input type="button" value="确定" onclick="ok()">
</div>
<script>
function show() {
$("#div2,#div3").removeClass("hide");
}
function ok() {
$("#div2,#div3").addClass("hide");
}
</script>
</body>
</html>
模态对话框简单版
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript" src="jquery-3.1.1.js"></script>
<script>
function tab(self) {
var str=$(self).attr("xxx"); // 获取元素属性
$("#"+str).removeClass("hide").siblings().addClass("hide"); // 通过"#"+str字符串拼接得到关联的标签
$(self).addClass("current").siblings().removeClass("current");
}
</script>
<style>
*{
margin: 0;
padding: 0;
} .tab{
width: 60%;
margin: 0 auto;
}
.menu{
line-height: 30px;
background-color: #9aaece;
} .menu li{
display: inline-block;
padding-left: 6px;
padding-right: 7px;
} .content{
height: 350px;
border: 1px solid #95b0dc;
background-color: #dfe7f2;
border-top: 1px solid #4ba575;
} .current{
color: #fff;
background-color: #3A557A;
border-bottom: 2px solid #4ba575;
} .hide{
display: none;
}
</style>
</head>
<body>
<div class="tab">
<ul class="menu">
<li xxx="con1" class="current" onclick="tab(this)">概要</li>
<li xxx="con2" onclick="tab(this)">存储池</li>
<li xxx="con3" onclick="tab(this)">操作日志</li>
</ul>
<div class="content">
<div id="con1">内容一</div>
<div id="con2" class="hide">内容二</div>
<div id="con3" class="hide">内容三</div>
</div>
</div> </body>
</html>
Tab标签切换
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript" src="jquery-3.1.1.js"></script>
</head>
<body>
<div class="outer">
<div class="condition"> <div class="icons" style="display:inline-block">
<a onclick="add(this);"><button>+</button></a>
</div> <div class="input" style="display:inline-block">
<input type="checkbox">
<input type="text" value="alex">
</div>
</div>
</div>
<script> function add(self){
var $duplicate = $(self).parent().parent().clone();
// find()方法:搜索所有与指定表达式匹配的元素
$duplicate.find('a[onclick="add(this);"]').attr('onclick',"removed(this)").children("").text("-");
$duplicate.appendTo($(self).parent().parent().parent()); }
function removed(self){ $(self).parent().parent().remove() } </script>
</body>
</html>
clone方法
面板拖动思路:
大盒子包含两个小盒子,标题栏和内容框。
(1)当鼠标滑动到标题栏时,鼠标光标变成可拖动样式;
(2)当鼠标按下时,获取鼠标当前横纵坐标位置,以及面板当前与文档左边和上边的距离;
(3)鼠标按下并移动时,获取鼠标新的横纵坐标位置;此时面板与文档左边和上边的距离为,面板与文档原来的距离加上鼠标横纵坐标的相对距离。通过修改CSS样式实时改变面板的位置。
(4)鼠标松开时取消“鼠标移动”事件监听,Bingo~
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript" src="jquery-3.1.1.js"></script>
<style>
.outer{
width: 400px;
position: absolute;
border: 1px solid #9e4959;
} .title{
height: 25px;
color: white;
background-color: #1c3e6d;
}
.content{
height: 300px;
}
</style>
</head>
<body>
<div class="outer">
<div class="title">标题</div>
<div class="content"></div>
</div>
<script>
$(".title").mouseover(function () {
$(this).css("cursor","move")
}).mousedown(function (event) {
var start_x = event.screenX;
var start_y = event.screenY; var parent_left = $(this).offset().left;
var parent_top = $(this).offset().top; $(this).on("mousemove",function (new_event) {
var new_x = new_event.screenX;
var new_y = new_event.screenY; var new_parent_left = parent_left + (new_x - start_x);
var new_parent_top = parent_top + (new_y - start_y); $(this).parent().css("left",new_parent_left + "px");
$(this).parent().css("top",new_parent_top + "px");
}).mouseup(function () {
$(this).off("mousemove")
}) })
</script>
</body>
</html>
面板拖动
前端基础——jQuery的更多相关文章
- web前端基础——jQuery编程基础
1 jQuery简介 jQuery是一个兼容多浏览器的JavaScript库,核心理念是write less,do more(写得更少,做得更多).它对JavaScript进行了封装,使开发更便捷,并 ...
- Web前端基础——jQuery(一)
前几天回老家呆了几天,几乎没有怎么学习新的知识,这期间一直有断断续续的看<Java编程思想>,还刷了一些前沿消息,也算没闲着.今天开始学习jQuery啦,继续前进. 在网上查了,买了这本书 ...
- 前端基础-jQuery的优点以及用法
一.jQuery介绍 jQuery是一个轻量级的.兼容多浏览器的JavaScript库. jQuery使用户能够更方便地处理HTML Document.Events.实现动画效果.方便地进行Ajax交 ...
- 前端基础-jQuery中的如何操作标签
阅读目录 样式操作 文本操作 属性操作 文档操作 一.样式操作 1.样式类 addClass();// 添加指定的CSS类名. removeClass();// 移除指定的CSS类名. hasClas ...
- 前端基础-jQuery的内容之选择器
阅读目录 ID选择器 类选择器 元素选择器 通配符选择器 层级选择器 基本筛选器 内容筛选器 可见性筛选器 属性筛选器 子元素筛选器 表单元素筛选器 表单对象筛选器 this和$(this) 一.jQ ...
- 前端基础----jquery
一.jQuery是什么? <1> jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多 javascript高手加入其team. <2>jQuery是继 ...
- 前端基础jQuery
jQury jQuery 是一个 JavaScript 函数库,jQuery 极大地简化了 JavaScript 编程. jQuery库包含以下功能: HTML 元素选取 HTML 元素操作 CSS ...
- web前端基础——jQuery编程进阶
1 jQuery本质 jQuery不是一门独立的语言,它是JavaScript的一个类库或框架.jQuery的核心思想就是:选取元素,对其操作.很多时候写jQuery代码的关键就是怎样设计合适的选择器 ...
- Web前端基础——jQuery(三)
本文主要从以下几方面介绍jQuery应用中的内容: 1 jQuery 节点遍历2 jQuery 中的过滤器3 jQuery 属性操作4 jQuery Dom节点操作5 几个jQuery例子6 jQue ...
- Web前端基础——jQuery(二)
一.jQuery 中的常用函数 1) $.map(Array,fn); 对数组中的每个元素,都用fn进行处理,fn将处理后的结果返回,最后得到一个数组 //因为这些操作,没有与dom元素相关的,所以可 ...
随机推荐
- iOS【野路子】精准获取webView内容高度,自适应高度
关于WebView内容高度的获取,相信很多人都踩过坑,无法获取到准确高度,导致页面布局出现差错,搜到的资料很多但都无法解决问题,以下是个人经验总结: 项目需求实现H5文章&原生评论效果,文章是 ...
- 【剑指offer】输入一颗二叉树的根节点,求二叉树的深度,C++实现
原创博文,转载请注明出处! # 题目 # 举例 下图二叉树的深度为4,最长路径为1-2-5-7. # 思路(递归) 如果一个树只有一个节点,它的深度为1: 如果根节点只有左子 ...
- 一个导出redis有序集合sorted-sets的shell脚本
通过keys匹配需要导出的有序集合名称,这些集合命名格式为:*_010_09/Dec/2015 依次通过zscan导出有序集合中的数据,并分别保存 #/bin/shzset_pattern=”*_01 ...
- Oracle基本概念与数据导入
Oracle基本概念 实例 一个Oracle实例(Oracle Instance)有一系列的后台进程(Backguound Processes)和内存结构(Memory Structures)组成.一 ...
- JS格式化数字(每三位加逗号)
function toThousands(num) { var num = (num || 0).toString(), result = ''; //判断是否带小数点 if (num.split(' ...
- 报错 Inferred type 'S' for type parameter 'S' is not within its bound; 解决办法
出现情况: Inferred type 'S' for type parameter 'S' is not within its bound; should extends xxxxxx 出现这种问题 ...
- asp.net如何判断服务器上的目录或文件是否存在
asp.net判断服务器上的目录或文件是否存在!(实例) // ======================================================= [判断文件是否存在] u ...
- Jitsi 开源视频会议远程桌面共享&&文档共享工具
1. 特点 主要功能特点: 支持网络视频会议,使用SFU模式实现视频路由器功能. 支持SIP帐号注册电话呼叫. 支持安卓苹果终端. 支持文档共享功能,即时消息功能. 支持中文界面. 支持会议邀请,密码 ...
- Linux下定时执行任务(crontab命令)
1.循环执行的计划任务 linux下面有atd和crond两种计划任务,其中,atd服务使用的at命令只能执行一次,而crond服务使用的crontab定义的命令,是循环作用的,所以crond才符合我 ...
- Web Service简介(一)
这篇博文,我们对Web Service进行一个简单的介绍和认识,作为Web Service的入门.在学习之前,你需要对HTML和XML有基本的了解,Web Service并不难,而且非常的简单. 什么 ...