jQuery初步
1.jQuery开发步骤
jQuery是第三方开源组织基于js写的一款跨主流浏览器的实用库。
(1)引用第三方js库文件,<script type="text/javascript" src="js/jquery-1.8.2.js"></script>
(2)查阅并使用api手册,$("#divID").html()/val()/text()/css("color","red")/....
2.js对象转成jQuery对象
语法:$(js对象)---->jQuery对象
例如:$(divElement)---->$div
3.jQuery对象的三种基本定位方式
(A)通过ID属性:$("#id属性值")
(B)通过标签名:$("标签名")
(C)通过CLASS属性:$(".样式名")
4.jQuery9类选择器
基本选择器
//查找id的元素个数
alert($("#div1ID").size());
//查找div元素个数
alert($("div").length);
//查找class元素个数
alert($(".myClass").size());
//查找div,span,p的个数
alert($("div,span,p").size());
//查找所有id,class,p的元素个数
alert($("#div1ID,.myClass,p").size());
层次选择器
//找到form里面的input
alert($("form input").size());
//找到form里所有子级input元素
alert($("form>input").size());
//找到form同级的第一个input的值
alert($("form+input").val());
//找到form同级的input元素个数,从form往后找
alert($("form~input").length);
基本加强型选择器
//得到第一个li
alert($("ul li:first").text());
//得到最后一个li
alert($("ul li:last").text());
//得到第3个li,从0开始计数
alert($("ul li:eq(2)").text());
//得到偶数的tr
alert($("table tr:even").text());
//得到奇数的tr
alert($("table tr:odd").text());
//查找表格中索引号大于0的tr
alert($("table tr:gt(0)").size());
//查找表格中索引号小于4的tr
alert($("table tr:lt(4)").size());
//给h1\h2\h3标签加上红色背景,蓝色文字,header只用于h1、h2、h3
$(":header").css("background-color","red").css("color","blue");
//查找未选中的input为checkbox的元素个数
alert($(":checkbox:not(:checked)").size());
内容选择器
//查找所有包含文本"John"的div元素的个数
alert($("div:contains('John')").size());
//查找所有p元素为空的元素个数,不包含<p/>元素
alert($("p:empty").size());
//给所有包含p元素的div元素添加一个myClass样式
$("div:has(p)").addClass("myClass");
//查找所有含有子元素或者文本的p元素个数,即p为父元素,包含<p/>元素
alert($("p:parent").size());
可见性选择器
//1)查找隐藏的tr元素的个数
alert($("table tr:hidden").size());
//2)查找所有可见的tr元素的个数
alert($("table tr:visible").size());
属性选择器
//查找所有含有id属性的div元素个数
alert($("div[id]").size());
//查找所有name属性是newsletter的input元素,并将其选中
$("input[name='newsletter']").attr("checked","checked");
//查找所有name属性不是newsletter的input元素,并将其选中
$("input[name!='newsletter']").attr("checked","checked");
//查找所有name属性以'news'开头的input元素,并将其选中
$("input[name^='news']").attr("checked","checked");
//查找所有name属性以'letter'结尾的input元素,并将其选中
$("input[name$='letter']").attr("checked","checked");
//查找所有name属性包含'news'的input元素,并将其选中
$("input[name*='news']").attr("checked","checked");
//找到所有含有id属性,并且它的name属性是以"letter"结尾的input元素,并将其选中
$("input[id][name$='letter']").attr("checked","checked");
子元素选择器
//迭代[each]每个ul中第1个li元素中的内容,索引从1开始
$("ul li:first-child").each(function () {
//alert(this.text());传统js对象不能调用text
alert($(this).text());
})
//迭代每个ul中最后1个li元素中的内容,索引从1开始
$("ul li:last-child").each(function () {
//alert(this.text());传统对象不能调用text
alert($(this).text());
})
//迭代每个ul中第2个li元素中的内容,索引从1开始
$("ul li:nth-child(2)").each(function () {
alert($(this).text());
})
//在ul中查找是唯一子元素的li元素的内容
$("ul li:only-child").each(function () {
alert($(this).text());
})
表单选择器
//查找所有input元素的个数
//alert( $("input").size() );//10,找input标签
alert( $(":input").size() );//13,找input标签和select/textarea/button
//查找所有文本框的个数
alert( $(":text").size() );
//查找所有密码框的个数
alert( $(":password").size() );
//查找所有单选按钮的个数
alert( $(":radio").size() );
//查找所有复选框的个数
alert( $(":checkbox").size() );
//查找所有提交按钮的个数,包括<button>标签
alert( $(":submit").size() );
//匹配所有图像域的个数
alert( $(":image").size() );
//查找所有重置按钮的个数
alert( $(":reset").size() );
//查找所有普通按钮的个数,包括input的type=button
alert( $(":button").size() );
//查找所有文件域的个数
alert( $(":file").size() );
//查找所有input元素为隐藏域的个数
alert( $(":input:hidden").size() );
表单对象属性选择器
//查找所有可用的input元素的个数
alert($("input:enabled").size());
//查找所有不可用的input元素的个数
alert( $("input:disabled").size() );
//查找所有选中的复选框元素的个数
alert( $(":checkbox:checked").size() );
//查找所有未选中的复选框元素的个数
alert( $(":checkbox:NOT(:checked)").size() );
//查找所有选中的选项元素的个数
alert( $("select option:selected").size() );
//查找id为provinceID的select的未选中的选项个数
alert( $("#provinceID option:NOT(:selected)").size() );
5.jQuery方法
DOM标准规则下的jQuery常用API
//DIV标签插入到UL标签之后(父子关系)
$("ul").append($("div"));
//DIV标签插入到UL标签之前(父子关系)
$("ul").prepend($("div"));
//DIV标签插入到UL标签之后(兄弟关系)
$("ul").after($("div"));
//DIV标签插入到UL标签之前(兄弟关系)
$("ul").before($("div")); //取得form里第一个input元素的type属性
//<input type="text" name="username" value="张三"/>
alert($("form input:first").attr("type"));
//设置form里最后一个input元素的为只读文本框
$("form input:last").attr("readonly","true"); //创建div元素,添加"哈哈"文本,ID属性,并添加到文档中
/*js方式*/
var divElement = document.createElement("div");
divElement.innerHTML = "哈哈哈";
divElement.setAttribute("id","2015");
divElement.id = "2015";
document.body.appendChild(divElement);
//jquery方式
var $div = $("<div id='2015'>哈哈哈哈</div>")
$("body").append($div)
$(document.body).append($div); //删除ID为secondID的LI元素
$("#secondID").remove();
//删除第一个ul中的所有LI元素
$("#a li").remove();
//删除第二个UL元素
$("#b").remove(); //复制原input元素,添加到原input元素后,与其同级
var $old = $(":button");
var $new = $old.clone();
$new.val("新按钮");
$old.after($new);
//为原input元素动态添加单击事件,且复制原input元素,
var $old = $(":button");
$old.click(function (){
alert("动态事件");
})
//添加到原input元素后,与其同级,且和原按钮有一样的行为
var $old = $(":button");
var $new = $old.clone(true);//复制行为和样式
$new.val("新按钮");
$old.after($new); //双击<div>中的文本,用文本框替换文本
$("div").dblclick( function(){
var $text = $("<input type='text' style='width:165px;height:23px'/>");
//文本框替代div标签
$(this).replaceWith( $text );
} ); //为<table>元素添加属性border/align/width
$("table").attr("border","2").attr("align","right").attr("width","60%");
//将<table>元素的align属性删除
$("table").removeAttr("align");
添加样式
//为无样式的DIV添加样式
$("div:first").addClass("myClass");
//为有样式的DIV删除样式
$("div:last").removeClass("myClass");
//切换样式,即有样式的变成无样式,无样式的变成有样式
$("div").toggleClass("myClass");
//最后一个DIV是否有样式
var flag = $("div:last").hasClass("myClass");
alert(flag?"有样式":"无样式"); //获取图片的坐标
var offset = $("img").offset();
var x = offset.left;
var y = offset.top;
alert(x);
alert(y);
//设置图片的坐标
$("img").offset({
top:100,
left:200
});
//获取图片的宽高
var w = $("img").width();
var h = $("img").height();
alert(w+":"+h);
//设置图片的宽高
$("img").width(500);
$("img").height(600); //取得div元素的直接子元素内容,不含后代元素
//<div>
// <span>
// Hello Again
// <b>
// Bold
// </b>
// </span>
//</div>
alert($("div").children().text());//Hello Again Bold
//取得div元素的下一个同级的兄弟元素内容
alert($("div").next().text());
//取得div元素的上一个同级的兄弟元素内容
alert($("div").prev().text());
//依次取得div元素同级的所有兄弟中p元素的内容
$("div").siblings("p").each(function(){
alert($(this).text());
});
动画
//图片隐蔽
$("img").hide(5000,function(){
alert("隐藏完毕");
});
//休息3秒
window.setTimeout(function(){
$("img").show(5000);
},3000); //淡出隐蔽图片
$("img").fadeOut(3000);
//淡入显示图片
$("img").fadeIn(3000); $(":button").click(function(){
//div标标上下移动
$("div").slideToggle(100);
});
6.jQuery事件
/*使用JS方式加载a()和b()二个方法,后面的覆盖前面的*/
window.onload = function(){
a();
}
window.onload = function(){
b();
}
/*使用jQuery最简方式加载a()和b()二个方法,不会覆盖两个都会执行*/
$(function(){
a();
});
$(function(){
b();
});
//当<select>标签触发onchange事件,显示选中<option>的value和innerHTML属性的值
$("#city").change( function(){
var $option = $("#city option:selected");
var value = $option.val();
var text = $option.text();
alert(value+":"+text);
} );
//加载页面时获取光标并选中所有文字
$(function(){
//定位光标
$(":text").focus();
//选中字体
$(":text").select();
})
//当按键弹起时,显示所按键的unicode码
$(function(){
//IE浏览器会自动创建event这个事件对象,那么程序员可以根据需要来使用该event对象
$(document).keyup(function(){
//获取按钮的unicode编码
var code = event.keyCode;
alert(code);
});
});
//显示鼠标移动时的X和Y座标
$(function(){
$(document).mousemove(function(){
var x = event.clientX;
var y = event.clientY;
$("#xID").val(x);
$("#yID").val(y);
});
});
//鼠标移到某行上,某行背景变色
$("table tr").mouseover(function(){
$(this).css("background-color","activecaption");
}); //鼠标移出某行,某行还原
$("table tr").mouseout(function(){
$(this).css("background-color","white");
}); //鼠标移到某图片上,为图片加边框
$("img").mouseover(function(){
$(this).css("border-color","red");
}); //鼠标移出图片,图片还原
$("img").mouseout(function(){
$(this).css("border-color","white");
});
<script type="text/javascript">
//浏览器加载web页面时触发
$(function(){
$("form :text").focus();
})
</script> <script type="text/javascript">
//检测是否为中文,true表示是中文,false表示非中文
function isChinese(str){
var reg = /^[\u4E01-\uFA29]+$/i;
if(reg.test(str))
{
return true;
}
return false;
}
</script> <script type="text/javascript">
//当表单提交前检测
$("form").submit(function(){
var flag = false;
//获取文本框中内容
var inputText = $("form :text").val();
//去空格
inputText = $.trim(inputText);
//判断是否有内容
if(inputText.length >0){
//如果有英文
if(isChinese(inputText))
{
flag = true;
$("form :text").val("");
}
else {
alert("用户名必须为中文")
}
}
else {
alert("必须填写用户名")
}
return flag;
})
</script>
//浏览器加载页面时,文本框样式改变
$(function(){
$("table :text").addClass("myClass");
});
//光标移上去时,清空文本框内容
$("table :text").focus(
function(){
$(this).val("");
$(this).removeClass("myClass");
}
);
//当文本框失去焦点时,恢复原来的样式
$("table :text").blur(function(){
var content = $(this).val();
if($.trim(content).length == 0)
{
$(this).val("输入用户名");
$(this).addClass("myClass");
}
})
7.jQuery中使用AJAX
简单获取时间,jquery对象调用load,直接将返回的数据插入到jquery对象里面。对于load方法而言,如果请求体无参数发送的话,load方法采用GET方式提交,如果请求体有参数发送的话,load方法采用POST方式提交。
简单形式:jQuery对象.load(url)
返回结果自动添加到jQuery对象代表的标签中间
如果是Servlet的话,采用的是GET方式
如果是Servlet的话,采用的是GET方式。
复杂形式:jQuery对象.load(url,sendData,function(backData,textStatus,ajax){... ...})
sendData = {"user.name":"jack","user.pass":"123"};
以JSON格式文本方式发送,使用POST方式发送,服务端能收到数据
function getMsg(){
var url = "${pageContext.request.contextPath}/ajax_time?time="+new Date().getTime();
// 参数一:url
// 参数二:以post方式发送的JSON格式数据
// 参数三:回调函数
$("#timeSpan").load(url,null,function(backData,textStatus,ajax){
//回调函数的三个参数
//返回的数据,它是js对象
alert(backData);
//返回状态的文本描述,例如success,error
alert(textStatus);
//ajax对象
alert(ajax.responseText);//是一个字符串
});
}
验证用户是否存在,使用$.post方法。如果页面有太多数据要发送,不需要一一写json格式的发送数据,只需要调用$(jquery对象).serialize()方法,它会自动将对象中有name属性的对象自动转换为json格式的数据。
function checkEmp(input){
var empName=$(input).val();
//去掉空格
empName = $.trim(empName);
if(empName.length == 0)
return;
var url="${pageContext.request.contextPath}/emp_checkEmp?time="+new Date().getTime();
//手动写json对象
var sendData = {
empName:empName
};
//jquery自动生成json对象
//var sendData = $("form").serialize();
alert(sendData);
$.post(url,sendData, function (backData) {
//创建img标签
var $img = $("<img src='"+backData+"' height='14px' width='14px'/>");
//清空span,然后添加图片
$("span").text("");
$("span").append($img);
})
}
二级联动:
function getCity(province){
var index = province.selectedIndex;
if(index == 0)
return;
var $province = $(province[index]).text();
var url = "${pageContext.request.contextPath}/ajax_getCity?time="+new Date().getTime();
var sendData = {
province:$province
}
$.post(url,sendData,function(xml){
//清空city下拉菜单
$("#cityID option:gt(0)").remove();
//xml是js对象
var $xml = $(xml).find("city");
$xml.each(function(){
//text可以访问xml标签
var option = $("<option>"+$(this).text()+"</option>");
//添加到下拉菜单
$("#cityID").append(option);
});
})
}
$.ajax方式
function getCity(province){
var index = province.selectedIndex;
if(index == 0)
return;
var $province = $(province[index]).text();
var url = "${pageContext.request.contextPath}/ajax_getCity?time="+new Date().getTime();
var sendData = {
province:$province
}
$.ajax({
type:"POST",
url:url,
data:sendData,
success:function(xml){
//清空city下拉菜单
$("#cityID option:gt(0)").remove();
//xml是js对象
var $xml = $(xml).find("city");
$xml.each(function(){
//text可以访问xml标签
var option = $("<option>"+$(this).text()+"</option>");
//添加到下拉菜单
$("#cityID").append(option);
});
}});
}
获取json数据
action方法
public class ProvinceCityAction extends ActionSupport{
private String province;
public void setProvince(String province) {
this.province = province;
//System.out.println("注入" + province);
}
//根据省份查询城市
public String findCityByProvince() throws Exception {
setCity = new LinkedHashSet<String>();
if("湖南".equals(province)){
setCity.add("长沙");
setCity.add("株洲");
}else if("广东".equals(province)){
setCity.add("广州");
setCity.add("中山");
setCity.add("佛山");
}
return SUCCESS;
}
private Set<String> setCity;
public Set<String> getSetCity() {
return setCity;
}
}
js
$("#province").change( function(){
//清空原城市下拉框中的内容,除第一项外
$("#city option:gt(0)").remove();
//获取选中的省份
var province = $("#province option:selected").text();
//如果选中的不是"选择省份"
if("选择省份"!=province){
$.ajax( {
type : "POST",
url : "${pageContext.request.contextPath}/struts2/findCityByProvinceRequest?time="+new Date().getTime(),
data : {"province":province},
success : function(backDate,textStatus,ajax){
//解析json文本
var array = backDate.setCity;
var size = array.length;
for(var i=0;i<size;i++){
var city = array[i];
var $option = $("<option>"+city+"</option>");
$("#city").append($option);
}
}
} );
}
} );
jQuery初步的更多相关文章
- 第二十篇 jQuery 初步学习2
jQuery 初步学习2 前言: 老师这里啰嗦一下,因为考虑到一些同学,不太了解WEB前端这门语言.老师就简单的说一下,写前端,需要什么:一台笔记本.一个文本编辑器.就没啦!当然,写这门语言, ...
- 第十九篇 jQuery初步学习
jQuery 初步学习 jQuery可以理解为是一种脚本,需要到网上下载,它是一个文件,后缀当然是js的文件,它里面封装了很多函数方法,我们直接调用即可,就比方说,我们用JS,写一个显示与隐藏,通 ...
- jquery初步总结
1.$(document).ready()方法和window.onload差分法 为页元件的正确操作,我们需要把操作元件JS编写的代码$(document).ready()(Jquery)或windo ...
- jquery 初步学习
首先 jQuery是一个轻量级的 JS框架,核心文件才几十KB 1. jquery 对象 var $variable=jquery对象 var variable = DOM对象 $variable[0 ...
- day10—jQuery初步实践,关于菜单
转行学开发,代码100天——2018-03-26 今天是本人写开发记录方面博客的第10天了,不知不觉已经涉及到jQuery框架的学习了. 第一次熬夜写前端代码还是两年前,不过中途放弃了,学的东西也日渐 ...
- jQuery笔记总结
来源于:http://blog.poetries.top/2016/10/20/review-jQuery/ http://www.jianshu.com/p/f8e3936b34c9 首先,来了解一 ...
- 【repost】jQuery笔记总结
第一节 jQuery初步认知 jQuery概述 JQuery概念 javascript概念 基于Js语言的API和语法组织逻辑,通过内置window和document对象,来操作内存中的DOM元素 J ...
- jQuery实现select三级联动
参考:jQuery权威指南jQuery初步jQuery选择器jQuery操作domjQuery操作dom事件jQuery插件jQuery操作AjaxjQuery动画与特效jQuery实现导航栏jQue ...
- jQuery实现点击式选项卡
参考:jQuery权威指南jQuery初步jQuery选择器jQuery操作domjQuery操作dom事件jQuery插件jQuery操作AjaxjQuery动画与特效jQuery实现导航栏jQue ...
随机推荐
- MyBatis——Mybatis缓存
原文:http://www.cnblogs.com/xdp-gacl/p/4270403.html MyBatis学习总结(七)--Mybatis缓存 一.MyBatis缓存介绍 正如大多数持久层框架 ...
- mybatis动态sql中foreach标签的使用
foreach标签主要用于构建in条件,他可以在sql中对集合进行迭代.如下: <delete id="deleteBatch"> delete from user w ...
- hiho_99_骑士问题
题目大意 给定国际象棋8x8棋盘上三个起始点,三个骑士分别从三个起始点开始移动(骑士只能走日字,且骑士从任意一点出发可以走遍整个棋盘).现要求三个骑士汇聚到棋盘上某个点,且使得骑士到达该点所移动的次数 ...
- phalcon: dispatcher调度控制器
phalcon: dispatcher调度控制器 我所理解的dispatcher调度控制器,实际上是对 router或者特定的url参数给与重组. 引用特定的类: //add use Phalcon\ ...
- OneProxy读写分离配置操作手册
1.确保已配置好主备集群 A)配置 可参考MySQL官方文档(https://dev.mysql.com/doc/refman/5.6/en/replication-howto.html) 或者我的博 ...
- linux笔记:文件编辑器vim
vim的3种工作模式: 在命令模式下进入插入模式: 定位命令: 删除命令: 复制和剪切命令: 替换和取消命令: 查找和替换命令: 保存和退出命令: 导入命令执行结果和定义快捷键:
- linux笔记:关机重启命令shutdown,系统运行级别init,退出登录logout
命令名称:shutdown功能:关机或重启用法:shutdown [选项] [时间]选项参数:-c 取消前一个关机命令-h 关机-r 重启时间格式:now 现在时:分 20:30其他:会正常关闭正在启 ...
- 5.5 Selenium2中的元素定位
WebDriver的更加面向对象的方式大大降低了Selenium的入门门槛,对Web元素的操作也非常之简单易学.实际项目用起来,工作量最大的部分就是你如何解析定位到你的目标项目页面中的各种元素.好比你 ...
- hdu-----(4514)湫湫系列故事——设计风景线(树形DP+并查集)
湫湫系列故事——设计风景线 Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Tot ...
- 【新手练习】类似Path的按钮,
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...