jQuery操作DOM
1,基本操作
1, html()
作用: 获取或设置jQuery对象中的html内容
2, text()
作用: 获取或设置 jQuery对象中的text文本内容
3, val()
作用: 获取或设置jQuery对象的value值;(主要针对表单控件)
练习:
创建一个文本框,定义id
创建一个按钮,内容为显示;
创建一个div,点击按钮时,构建成一级标题显示在div中;
2, 属性操作
1,attr()
作用:读取或设置jQuery对象的属性值
eg:
$obj.attr('id')
$obj.attr('id','main')
2, removeAttr('attrName')
删除jQuery对象的attrName属性
eg:
$obj.removeAttr('class');
3, 样式操作
1, attr()
2, addClass('classname')
将className添加到元素的class值之后; 追加类选择器;
返回值: jQuery对象,可以连缀调用;
3, removeClass('className')
删除类; 如果无参,则清空类选择器;
4, toggleClass('className')
切换样式:
元素如果具备className选择器,则删除
如果存在,则添加;
常用于一个按钮实现显示/隐藏;
5, css("属性名") or css("属性名","value")
获取或设置css属性:
$obj.css('width') 获取属性值
$obj.css('width','400px') 设置属性值
6, css(JSON对象)
JSON对象:
是一种约束了格式的对象表现形式;
JavaScript Object Notation
1, JSON对象必须是{}括起来
2, 使用键值对方式声明,表示属性和值
3, 所有属性使用时必须""括起来
4, 属性和值之间:
5, 多对属性之间, 间隔
同Python的字典
eg:
$obj.css({
"font-size":"28px",
"color":"#000",
"background":"pink",
"border":"1px solid #000"
})
4, 遍历节点
1, children() / children('selector')
获取某jQuery对象的所有子元素,或带有指定选择器的子元素;
注意: 只考虑子代元素,不考虑后代元素;
2, next() / next('selector')
获取某jQuery对象的下一个兄弟元素;或满足selector的下一个元素
3, prev() / pre('selector')
获取某jQuery对象的上一个兄弟元素;
或满足selector的上一个兄弟元素
4, siblings() /siblings('selector')
获取jQuery对象的所有兄弟元素/ 满足selector的所有兄弟元素
5, find('selector')
查找满足selector选择器的所有后代元素
6, parent()
查找某jQuery对象的父元素;
5, 创建对象
语法: $("标记")
eg:
1,创建一个div //推荐
var $div = $("<div></div>")
$div.html('动态创建div');
$div.attr('id','container');
$div.css('color','red');
2, 创建一个div
var $div = $(
"<div id = 'container'
style='color:red';>动态创建div</div>")
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
.c1{
background:pink;
}
.c2{
color:green;
}
.toggle{
visibility:hidden;
}
</style>
</head>
<input type="text" id='t1'>
<button id='btnShow' onclick='btnShow()'>显示</button>
<div id='d1'></div>
<p id='p1'>
君子曰,学不可以已。青取之于蓝而青于蓝,冰,水为之而寒于水;
</p>
<button id='btnCall' onclick='btnCall()'>连缀调用</button>
<button id='btnCall' onclick='btnClear()'>清空样式</button>
<button id='btnCall' onclick='btnToggle()'>显示/隐藏</button>
<button id='btnCall' onclick='getCss()'>获取背景颜色</button>
<button id='btnCall' onclick='setClass()'>JSON设置样式</button>
<button id='btnCreate' onclick='btnCreate()'>创建元素</button>
<script src='jquery-1.11.3.js'></script>
<script>
//练习:点击按钮,将文本框的内容以h1方式显示在div中;
function btnShow(){
$('#d1').html('<h1>' + $('#t1').val() + '</h1>');
}
//连缀调用
function btnCall(){
$('#p1').addClass('c1').addClass('c2');
}
//清空样式
function btnClear(){
$('#p1').removeClass();
}
//切换 样式,点击按钮可以显示隐藏;
function btnToggle(){
$('#p1').toggleClass('toggle');
}
function getCss(){
console.log($('#p1').css('background'))
}
//JSON对象设置css
function setClass(){
$('#p1').css({
"font-size":"28px",
"color":"#000",
"background":"pink",
"border":"1px solid #000"
})
}
//创建并插入元素标记
function btnCreate(){
$pPoem = $("<p></p>");
$pPoem.html('白日依山尽<br>黄河入海流<br>欲穷千里目<br>更上一层楼');
//$('#p1').before($pPoem);
//$('#p1').after($pPoem);
//$('#p1').append($pPoem);
$('#p1').prepend($pPoem);
}
</script>
</html>
6, 插入元素
作用: 将创建好的元素插入到网页中
1, 内部插入
作为元素的子元素插入到html中
1, $obj.append($new);
将$new元素追加到$obj的最后位置;
2, $obj.prepend($new);
将$new元素插入到$obj元素中的第一个子元素位置处
2, 外部插入
作为元素的兄弟元素插入到html中
1, $obj.after($new);
将$new元素座位$obj的下一个兄弟元素插入
2, $obj.before($new);
将$new元素座位$obj的上一个兄弟元素插入
7, 删除元素
$obj.remove()
jQuery不需要先获取父元素,再删除;而是直接删除自己;
作业: jQuery完成购物车页面
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
table{
border:1px solid #000;
border-collapse:collapse;
}
td{
border: 1px solid #000;
text-align:center;
}
</style>
</head>
<body>
<table id="tdTb">
<thead>
<tr>
<td><input type="text" id="pdName" placeholder="商品名称"></td>
<td><input type="text" id="pdPrice" placeholder="商品价格"></td>
<td><input type="text" id="pdNum" placeholder="商品数量"></td>
<td><button onclick="pdAdd()">增加</button></td>
</tr>
<tr>
<td>商品名称</td>
<td>商品价格</td>
<td>商品数量</td>
<td>操    作</td>
</tr>
</thead>
</table>
<script src='jquery-1.11.3.js'></script>
<script>
function pdAdd(){
var $pdTb = $('#tdTb');
//创建元素
var $pdItem = $('<tr></tr>')
var $pdName = $('<td></td>');
var $pdPrice = $('<td></td>');
var $pdNum = $('<td></td>');
var $pdOper = $('<td></td>');
var $pdBtCha = $("<button id='btnCha' onclick='btnCha(event)' >修改</button>")
var $pdBtDel = $("<button id='btnDel' onclick='btnDel(event)'>删除</button>")
//增加元素
$pdTb.append($pdItem);
$pdItem.append($pdName);
$pdItem.append($pdPrice);
$pdItem.append($pdNum);
$pdItem.append($pdOper);
$pdOper.append( $pdBtCha);
$pdOper.append($pdBtDel);
//设置元素的值
$pdName.html($('#pdName').val());
$pdPrice.html($('#pdPrice').val());
$pdNum.html($('#pdNum').val());
}
//对button增加事件
function btnDel(event){
//获取父元素的父元素,即button所在的tr;
var $deltem = $(event.target).parent().parent();
$deltem.remove();
//删除改节点
}
//修改按钮click事件
function btnCha(event){
//获取商品名称,价格,数量,3个元素
var $pdNum = $(event.target).parent().prev();
var $pdPrice = $pdNum.prev();
var $pdName = $pdPrice.prev();
//对3个元素进行复制;
$pdName.html($('#pdName').val());
$pdPrice.html($('#pdPrice').val());
$pdNum.html($('#pdNum').val());
}
</script>
</body>
</html>