WEB02_Day01(上)-jQuery实现DOM操作、jQuery常见特效

一、jQuery实现DOM操作(WEB01-day05)

1.1 DOM定义

  Document Object Model 文档对象模型 ,DOM是w3c(万维网联盟指定)的标准,控制页面标签元素内容,DOM定义了访问 HTML和 XML文档的标准,通过 DOM 解析以后就是一个树状结构,那么学习 DOM 操作主要就是学习在树状结构中找到咱们想要操作的元素,进行增删改。

 <!DOCTYPE html> 
 <html>
   <head>
     <meta charset="utf-8">
     <title>DOM</title>
   </head>
 
   <body>
     <h2><a href="www.tmooc.cn">达内学习平台</h2>
     <p>对html元素进行操作,可添加,改变或移除css样式等</p>
     <ul>
       <li>Javascript</li>
       <li>DOM</li>
       <li>css</li>
     </ul>
   </body>
 
 </html>

 

  • 外部对象本质上就是浏览器的API.

  • 外部对象包括BOM和DOM,它们是包含关系.

 

1.2 创建及增加元素

1.2.1增加元素

  • 创建元素

 var d=$("<div id='xxx'>abc</div>")
  • 将元素添加到页面后面

 $("body").append(d)
  • 将元素添加到页面最前面

 $("body").prepend(d)  
  • 将元素添加到某个元素的前面

 $("#abc").before(新元素)
  • 将元素添加到某个元素的后面

 $("#abc").after(新元素)
  • 删除元素对象

 $("#abc").remove();

 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>jQuery对Dom元素进行增加和删除操作</title>
 </head>
 <body>
     <div>张宁宁</div>
     <div>王雪娇</div>
     <div>顾有鹏</div>
 
     <script type="text/javascript" src="../js/jquery-1.11.3.js"></script>
     <script type="text/javascript">
         //创建一个div对象
         var d = $("<div style='color:blue'>包同学</div>")
         //将div对象添加到body的最开始位置
         $("body").prepend(d);
         //将div对象添加到body的最后位置
         $("body").append(d);
         //将div对象添加的王雪娇div之后
         $("div:contains('王雪娇')").after(d);
         //将div对象添加的王雪娇div前面
         $("div:contains('王雪娇')").before(d);
         //选中div对象进行删除
         $("div:contains('包同学')").remove();
     </script>
 </body>
 </html>

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>jQuery对Dom元素进行增加和删除操作</title>
</head>
<body>
<input type="text">
<input type="button" value="最前面">
<input type="button" value="最后面">
<input type="button" value="在天津前面">
<input type="button" value="在天津后面">
<input type="button" value="删除天津">
<hr>
<ul>
<li>石家庄</li>
<li>天津</li>
<li>唐山</li>
</ul>

<script type="text/javascript" src="../js/jquery-1.11.3.js"></script>
<script type="text/javascript">
/* 第一个按钮,使用过滤选择器,匹配input标签中下标值为X的元素 */
$("input:eq(1)").click(function () {
//创建列表项对象
var obj = $("<li></li>");
//获取用户在输入框中输入的值(通过属性选择器)
var txt = $("input[type='text']").val();
//将输入的内容存放到li标签中
obj.text(txt);
$("ul").prepend(obj);
});

/* 第二个按钮,使用过滤选择器,匹配input标签中下标值为X的元素 */
$("input:eq(2)").click(function () {
//创建列表项对象
var obj = $("<li></li>");
//获取用户在输入框中输入的值(通过属性选择器)
var txt = $("input[type='text']").val();
//将输入的内容存放到li标签中
obj.text(txt);
$("ul").append(obj);
});

/* 第三个按钮,使用过滤选择器,匹配input标签中下标值为X的元素 */
$("input:eq(3)").click(function () {
//创建列表项对象
var obj = $("<li></li>");
//获取用户在输入框中输入的值(通过属性选择器)
var txt = $("input[type='text']").val();
//将输入的内容存放到li标签中
obj.text(txt);
//选中天津元素对象,将文本框中内容绑定到列表以后显示到天津前面
$("li:contains('天津')").before(obj);
});

/* 第四个按钮,使用过滤选择器,匹配input标签中下标值为X的元素 */
$("input:eq(4)").click(function () {
//创建列表项对象
var obj = $("<li></li>");
//获取用户在输入框中输入的值(通过属性选择器)
var txt = $("input[type='text']").val();
//将输入的内容存放到li标签中
obj.text(txt);
//选中天津元素对象,将文本框中内容绑定到列表以后显示到天津前面
$("li:contains('天津')").after(obj);
});
/* 第五个按钮,使用过滤选择器,匹配input标签中下标值为X的元素 */
$("input:eq(5)").click(function () {
$("li:contains('天津')").remove();
});
</script>
</body>
</html>

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>jQuery对Dom元素进行增加和删除操作</title>
</head>
<body>
<ul>
<li>吴国
<ul>
<li>孙权</li>
<li>周瑜</li>
<li>鲁肃</li>
</ul>
</li>

<li>蜀国
<ul>
<li>刘备</li>
<li>诸葛亮</li>
<li>关羽</li>
</ul>
</li>

<li>魏国
<ul>
<li>曹操</li>
<li>荀彧</li>
<li>夏侯惇</li>
</ul>
</li>
</ul>

<script type="text/javascript" src="../js/jquery-1.11.3.js"></script>
<script type="text/javascript">
//1.隐藏页面中所有的二级url
$("li>ul").hide();
//2.点击某一个一级的li列表项,展示当前国家的人物
$("body>ul>li").click(function () {
/*
*注意点:确定点击某一个一级的li,需要使用到this关键字
* this表示就是当前被点击的一级li对象
*/
$(this).children().toggle();
//点击某一个一级li以后,需要让兄弟li中的子元素进行隐藏
$(this).siblings().children().hide();
});

</script>
</body>
</html>

1.2.2 修改元素

  • 修改元素的文本内容->等效于 JS 中的 innerText

元素对象.text("xxxx");       
元素对象.text()获取
  • 修改元素的html内容->等效于 JS 中的 innerHtml

元素对象.html("<h1>xxx</h1>");       
元素对象.html()获取
  • 修改元素的css样式

元素对象.css("样式名称","样式值"); 
//批量添加css样式
元素对象.css({"width":"200px","height":"100px"});
//取样式值
元素对象.css("样式名称")

之前在学习jQuery时使用过text()、html()、以及修改元素的样式,当前这块不单独再做案例

二、jQuery常见特效

2.1 省市的二级联动

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>省市二级联动</title>
</head>
<body>
<select>
<option>--请选择--</option>
<option value="0">辽宁</option>
<option value="1">吉林</option>
<option value="2">黑龙江</option>
</select>
<select>
<option>--请选择--</option>
</select>

<script type="text/javascript" src="../js/jquery-1.11.3.js"></script>
<script type="text/javascript">
//1.准备省份中的市区数据源数组
var arr = [["沈阳","葫芦岛","锦州","大连"],
["长春","吉林","辽源"],
["哈尔滨","漠河","齐齐哈尔"]];
//2.第一个下拉选绑定值改变事件(获取选择省份的value值)
$("select:first").change(function () {
//6.再次发生值改变时,需要清空第二个下拉选的内容
$("select:last").html("<option>--请选择--</option>");

//3.获取当前选中第一个下拉选对应的value值
var num = $("select:first").val();
//alert(num);
//4.根据省份的value值获取对应城市的数组cities
var cities = arr[num];
//5.遍历cities数组,根据cities数组中元素的个数,创建对应的option标签对象
for (var index = 0; index < cities.length; index++) {
var optionObj = $("<option></option>");
//获取cities数组中的值
var cityName = cities[index];
//向option标签中添加对应的文本内容
optionObj.text(cityName);
//将创建的option对象添加到第二个下拉选的子元素中
$("select:last").append(optionObj);
}
});
</script>
</body>
</html>

 

posted @ 2021-08-21 23:02  Coder_Cui  阅读(139)  评论(0编辑  收藏  举报