九 jQ事件绑定
1 事件绑定
1. 标签中使用on事件属性
<button onclick=”clickT()”></button>
2. 通过JS给标签设置 on 事件属性
btn.onclick = function(){}
3. 通过JS调用方法的方式
W3C:btn.addEventListner(事件名, 响应函数);
IE:btn.attchEvent(事件名, 响应函数);
4. 页面加载事件处理,可绑定多个处理函数
jQuery对象.click(fn)
2 demo
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>事件绑定</title>
</head>
<body>
<button id="btn1">btn1</button>
<button id="btn2" class="myBtn">btn2</button>
<button id="btn3" class="myBtn">btn3</button>
<!--外部引入-->
<script src="../static/jQuery-2.1.4/jquery-2.1.4.js"></script>
<!--内部引入-->
<script>
$("#btn1").click(function () {
console.log(this)
console.log($(this))
})
</script>
</body>
</html>
十 jQ文档操作
1 常用方法
1. 给元素添加子元素,且是最小的子元素。
append()
2. 给元素添加弟弟元素。
after()
3. 用于删除选定元素的所有子节点。这不会删除元素本身,只会删除其内部的内容。
empty()
4. 用于删除选定元素及其所有子节点。这是一个更彻底的方法,它会从DOM中完全移除元素。
remove()
5. detach() 方法与remove()类似,也是用于从DOM中删除元素及其所有子节点。但不同之处在于,detach()会保留所有jQuery数据和事件处理程序,以便将来可以再次将这些元素添加到文档中。
detach()
2 demo
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>dom操作方法</title>
</head>
<body>
<span style="background-color : blue;color: red;" id="span">SPAN</span>
<div id="div1" style="background-color: gray;">DIV1</div>
<div id="div2" style="background-color: green;">DIV2</div>
<ul id="ul">
<li>item1</li>
<li>item2</li>
<li>item3</li>
<li>item4</li>
<li>item5</li>
</ul>
<input id="btn" type="button" value="删除我"/>
<form>
<fieldset>
<legend>内部插入节点(插入子节点)</legend>
<input type="button" value="append" id="append"/>
</fieldset>
</form>
<form>
<fieldset>
<legend>外部插入节点(插入兄弟节点)</legend>
<input type="button" value="after" id="after"/>
</fieldset>
</form>
<form>
<fieldset>
<legend>删除节点</legend>
<input type="button" value="删除所有子节点" id="empty"/>
<input type="button" value="删除节点" id="remove"/>
<input type="button" value="恢复节点" id="resume"/>
</fieldset>
</form>
<!--外部引入-->
<script src="../static/jQuery-2.1.4/jquery-2.1.4.js"></script>
<!--内部引入-->
<script>
$("#btn").click(function () {
$(this).remove();
})
$("#append").click(function (){
$(this).after($("#ul"))
})
$("#append").click(function () {
$("#div1").append($("#span"));
})
$("#after").click(function () {
$("#div2").after($("#div1"));
})
</script>
</body>
</html>
十一 jQ元素属性操作的方法
1 属性操作的方法
1.用于获取或设置被选元素的样式属性。
css()
2.用于获取或设置表单字段(如 input、select、textarea)的值
val()
3.用于向被选元素添加一个或多个类。
addClass()
4.用于从被选元素移除一个或多个类
removeClass()
5.用于获取或设置被选元素的属性和属性值,特别是那些返回布尔值的属性,如 checked, selected, disabled 等。
prop()
6.用于在指定的元素上存储和获取数据。这允许你附加额外的信息到DOM元素上,而不需要改变其HTML结构。
data()
7.用于获取或设置被选元素的属性值。
attr()
2 demo
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>元素属性操作</title>
<style type="text/css">
.other {
background-color: orange;
font-size: 20px;
}
.myBtn{
background-color: red;
}
</style>
</head>
<input id="btn" type="button" value="点我"/>
<form>
<fieldset>
<legend>属性操作</legend>
<input type="button" value="获取属性值" id="getAttr"/>
<input type="button" value="设置属性值" id="setAttr"/>
</fieldset>
</form>
<form>
<fieldset>
<legend>CSS 操作</legend>
<input type="button" value="添加CSS" id="addClass"/>
<input type="button" value="删除CSS" id="removeClass"/>
<input type="button" value="轮换CSS" id="toggleClass"/>
<input type="button" value="判断CSS" id="hasClass"/>
</fieldset>
</form>
<input type="checkbox" value="1" checked name="gender" id="gender" data-option='{"name" : "蒋干"}'
style="color: red; background: aqua" class="myBtn other" > 男
<!--外部引入-->
<script src="../static/jQuery-2.1.4/jquery-2.1.4.js"></script>
<!--内部引入-->
<script>
$("#btn").click(function (){
$(this).addClass("myBtn");
$(this).hasClass("other");
})
$("#getAttr").click(function (){
console.log($("#btn").attr("id"))
})
$("#setAttr").click(function (){
$("#btn").attr("type","123");
console.log($("#btn").attr("type"))
})
console.log( $("#gender").attr("checked"))
console.log( $("#gender").prop("checked"))
</script>
</body>
</html>
十二 常见demo
1 下拉框回显
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>下拉框回显练习</title>
</head>
<body>
<select id="s1">
<option value="1">选项1</option>
<option value="2">选项2</option>
<option value="3" >选项3</option>
<option value="4">选项4</option>
<option value="5">选项5</option>
</select>
<br/>
<input type="button" value="回显第3个选项" onclick="echo();"/><br/>
<!--外部引入-->
<script src="../static/jQuery-2.1.4/jquery-2.1.4.js"></script>
<!--内部引入-->
<script>
function echo(){
$("option:eq(2)").prop("selected",true);
console.log($("#s1").val())
}
</script>
</body>
</html>
2 下拉框选项移动
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>下拉框选项移动练习</title>
</head>
<body>
<table border="1">
<tr>
<td>
<select id="select1" style="width:100px;height:200px" size="10" multiple="multiple">
<option value="选项1">选项1</option>
<option value="选项2">选项2</option>
<option value="选项3">选项3</option>
<option value="选项4">选项4</option>
<option value="选项5">选项5</option>
<option value="选项6">选项6</option>
<option value="选项7">选项7</option>
<option value="选项8">选项8</option>
<option value="选项9">选项9</option>
</select>
</td>
<td align="center">
<input type="button" onclick="moveSelected('select1','select2')" value="-->"/><br/>
<input type="button" onclick="moveAll('select1','select2')" value="==>"/><br/>
<input type="button" onclick="moveSelected('select2','select1')" value="<--"/><br/>
<input type="button" onclick="moveAll('select2','select1')" value="<=="/>
</td>
<td>
<select id="select2" style="width:100px;height:200px" size="10" multiple="multiple"></select>
</td>
</tr>
</table>
<!--外部引入-->
<script src="../static/jQuery-2.1.4/jquery-2.1.4.js"></script>
<!--内部引入-->
<script>
function moveAll(select1,select2){
$("#"+select2).append($("#"+select1+" > option"));
}
function moveSelected(select1,select2){
$("#"+select2).append($("#"+select1+" > option:selected"));
}
</script>
</body>
</html>
3 下拉框选项去重
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>下拉框选项去重移动练习</title>
</head>
<body>
<table border="1">
<tr>
<td>
<select id="s1" style="width:100px;" size="10" multiple="multiple" >
<option value="1">选项1</option>
<option value="2">选项2</option>
<option value="3">选项3</option>
<option value="4">选项4</option>
<option value="5">选项5</option>
</select>
</td>
<td align="center">
<input type="button" value="去除重复" onclick="distinct();"/><br/>
</td>
<td>
<select id="s2" style="width:100px;" size="10" multiple="multiple" >
<option value="1">选项1</option>
<option value="3">选项3</option>
<option value="5">选项5</option>
</select>
</td>
</tr>
</table>
<!--外部引入-->
<script src="../static/jQuery-2.1.4/jquery-2.1.4.js"></script>
<!--内部引入-->
<script>
function distinct(){
var arr=new Array();
$("#s2 > option").each(function (index,item){
arr.push($(item).val())
})
$("#s1 > option").each(function (index,item){
var res= $.inArray($(item).val(),arr);
if(res !=-1){
$(item).remove();
}
})
}
</script>
</body>
</html>
4 全选
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>全选练习</title>
</head>
<body>
请选择你的爱好:<br/>
<input type="checkbox" onchange="checkChange(this)" id="checkAll"/>全选/全不选<br/>
<div>
<input type="checkbox" name="hobby"/>JAVA
<input type="checkbox" name="hobby"/>C
<input type="checkbox" name="hobby"/>Python
<input type="checkbox" name="hobby"/>Go
</div>
<div>
<input type="button" id="btn_checkAll" onclick="checkAll(true)" value="全选"/>
<input type="button" onclick="checkAll(false)" value="全不选"/>
<input type="button" onclick="checkUnAll()" value="反选"/>
</div>
<!--外部引入-->
<script src="../static/jQuery-2.1.4/jquery-2.1.4.js"></script>
<!--内部引入-->
<script>
function checkAll(bol){
$("input[name='hobby']").prop("checked",bol);
}
function checkChange(obj){
$("input[name='hobby']").prop("checked",$(obj).prop("checked"));
}
function checkUnAll(){
$("input[name='hobby']").each(function (index,item){
$(item).prop("checked",!$(item).prop("checked"));
})
}
</script>
</body>
</html>