随着对jQuery的学习的慢慢深入,今天写点jQuery中的常用方法和属性
one.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>jQuery技术实例</title>
<style type="text/css">
div {
width: 150px;
height: 100px;
margin: 5px;
border: 2px solid blue;
}
</style>
<script type="text/javascript" src="<c:url value='/js/jquery-3.1.0.js' />"></script>
<script type="text/javascript">
/*
jQuery的调用框架:
$(function(){
...........//在内部写操作代码..
});
*/
$(function(){
//1. 设置css样式
var div=$("div:first");
div.css({"border":"1px solid red","width":"200px","heigth":"100px","background":"#00ff00"});
//$("div:eq(1)").css({"border":"1px solid blue"}).html("hello,你好!").css({"width":"100px","height":"50px"});
$("div").eq(1).css({"border":"1px solid gray"}).html("你好啊").css({"width":"100px","height":"50px"});
//2. 设置或读取页面元素的内容 ----html() text() val() 如果是空参则是读取文本内容,否则就是设置内容
$("#xx").text("<input type='text' value='text' />");//设置的是一个纯文本即参数内容
$("#yy").html("<input type='text' value='html'/>");//设置的是一个input组件(参数信息被解析)
//alert($("#xx").text);
//alert($("#yy").html);
//3. 设置或读取元素属性----attr() ,prop() ----如果只有一个参数,则是读取属性,如果是两个参数则是设置属性
//alert($("#name").attr("value"));
//alert($("#name").attr("type"));
//alert($("#name").prop("type"));
//alert($("#name").prop("value"));
$("#btn1").click(function(){
//$("#name").attr("type","button");
$("#name").prop("type","button");
//$("#name").attr("disabled","disabled");
$("#name").prop("disabled","disabled");
$("#name").prop("a","123");
//alert($("#name").attr("a"));//undefined
//alert($("#name").prop("a"));//123
//$("#name").attr("b","abc");
//alert($("#name").attr("b"));//abc
//alert($("#name").prop("b"));//undefined
});
$("#btn2").click(function(){
$("#name").removeAttr("disabled");//移除属性,都可以删除
//$("#name").removeProp("disabled");//只能移除prop()创建的属性,而且window或dom内置的对象,不让删除
alert($("#name").prop("a"));
$("#name").removeProp("a");//只能移除prop()创建的属性
alert($("#name").prop("a"));
});
});
</script>
</head>
<body>
<button id="btn1">--按钮1--</button><br>
<button id="btn2">--按钮2--</button><br>
<div>11111111</div><br>
<div>22222222222222</div><br>
<div id="xx"></div><br>
<div id="yy"></div><br>
<input type="text" id="name" value="Hello jQuery!"/>
</body>
</html>
按下按钮1触发事件将type为text改为button,同时设为不可用
tow.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>jQuery技术实例</title>
<style type="text/css">
div {
width: 150px;
height: 100px;
margin: 5px;
border: 2px solid blue;
}
.bg{
background: blue;
}
.bg0{
background: gray;
}
.bg1{
background: green;
}
.bg2{
background: red;
}
</style>
<script type="text/javascript" src="<c:url value='/js/jquery-3.1.0.js' />"></script>
<script type="text/javascript">
$(function(){
$("#btn1").click(function(){
/*虽然可以实现两种样式的切换,但是太底层了
var boo=$("#d1").hasClass("bg");
if(boo){
$("#d1").removeClass("bg");
}else{
$("#d1").addClass("bg");
}
*/
$("#d1").toggleClass("bg");//如果存在(不存在)就删除(添加)一个类。
});
$("#btn2").click(function(){
$("#d1").toggleClass(function(){
var r=Math.random();//[0-1]之间的小数
r*=3;
r=parseInt(r);
return "bg"+r;//由内部回调函数的返回值来指定样式
});
});
});
</script>
</head>
<body>
<button id="btn1">--两种样式的切换--</button><br>
<button id="btn2">--三种样式的切换--</button><br>
<div id="d1">11111111</div><br>
</body>
</html>
利用自己写底层或者jQuery提供的方法来事件样式的切换
three.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>jQuery技术实例</title>
<style type="text/css">
div {
width: 150px;
height: 100px;
margin: 5px;
border: 2px solid blue;
}
.text{
background: red;
}
</style>
<script type="text/javascript" src="<c:url value='/js/jquery-3.1.0.js' />"></script>
<script type="text/javascript">
$(function(){
$("#btn1").click(function(){
$("img").each(function(i){//each 以每一个匹配的元素作为上下文来执行一个函数。
var fileName=(i+1)+".jpg";
//this.src="<c:url value='/imgs/"+fileName+"' />";//dom方式
$(this).attr("src","<c:url value='/imgs/"+fileName+"' />");//jquery方式
});
});
//each(callback)
$("#btn2").click(function(){
//遍历一个数组
var ar=[22,9,36,15];
$.each(ar,function(idx,val){
alert(idx+","+val);//前一个是数组中的序号,第二个是值
});
});
$("#btn3").click(function(){
$("div:has(p)").addClass("text");//匹配含有选择器所匹配的元素的元素
});
});
</script>
</head>
<body>
<button id="btn1">--each技术--</button><br>
<button id="btn2">--each2--</button><br>
<button id="btn3">--btn3--</button><br>
<img alt="" src="" />
<img alt="" src="" />
<img alt="" src="" />
<img alt="" src="" />
<div ><p>11111111</p></div><br>
<div >222222</div><br>
</body>
</html>
利用each()方法来实现for循环,将图片赋上src地址,同时可遍历数组
four.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>jQuery技术实例</title>
<style type="text/css">
div {
width: 250px;
height: 200px;
margin: 5px;
border: 2px solid blue;
}
.text{
background: red;
}
</style>
<script type="text/javascript" src="<c:url value='/js/jquery-3.1.0.js' />"></script>
<script type="text/javascript">
$(function(){
$("#btn1").click(function(){
alert($("td:parent").html);
});
//jQuery核心函数3:jQuery(html,[owerDoc]) ----创建对象
var i=1;
$("#div1").click(function(){
var strBtn="<button>演示按钮"+i+"</button>";
//$(this).append(strBtn);//加在后面
//$(strBtn).appendTo($(this));//$(strBtn)的功能就是用html格式串创建出一个jQuery对象
//$(this).prepend(strBtn);//加在前面
$(strBtn).prependTo($(this));//$(strBtn)的功能就是用html格式串创建出一个jQuery对象
i++;
});
});
</script>
</head>
<body>
<button id="btn1">--btn1--</button><br>
<div id="div1">演示添加</div><br>
<table>
<tr><td>value1</td><td></td></tr>
<tr><td>value2</td><td></td></tr>
</table>
</body>
</html>
利用jQuery第三个核心函数,给一个html格式串可将其创建出一个jQuery对象
five.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>jQuery技术实例</title>
<style type="text/css">
div {
width: 250px;
height: 200px;
margin: 5px;
border: 2px solid blue;
}
table{
border: 2px solid blue;
background: red;
width: 250px;
height: 200px;
}
td{
border: 2px solid blue;
}
</style>
<script type="text/javascript" src="<c:url value='/js/jquery-3.1.0.js' />"></script>
<script type="text/javascript">
$(function(){
$("#tb1 td").dblclick(function(){//双击事件
var text=$(this).text();//把原单元格中的内容读取出来
//利用jQuery核心函数3,生成一个编辑框
var input=$("<input class='text' type='text' value='"+text+"' />");//注:input要是jQuery对象,这样在下面才能调用focus()、blur()等jQuery中的函数
$(this).html(input);
input.focus();//获取光标焦点
input.blur(function(){
var val=$(this).val();
$(this).parent().html(val);
});
event.stopPropagation();//阻止事件冒泡
});
});
</script>
</head>
<body>
<div id="div1">演示添加</div><br>
<table id="tb1">
<tr><td>Tom</td><td>18</td></tr>
<tr><td>李二</td><td>20</td></tr>
</table>
</body>
</html>
一个小小的应用:有表格,点击表格中的内容可以编辑,点击表格外可将编辑后的内容保存